现在的位置: 首页 > 综合 > 正文

c++ 指向 类成员函数(thiscall)的 函数指针

2018年02月08日 ⁄ 综合 ⁄ 共 571字 ⁄ 字号 评论关闭

参考: http://blog.csdn.net/lqk1985/article/details/2418383

今天项目中需要用到一个类似于: 接收到一个字符串命令,然后调用对应的执行函数.

一般情况下我们采用map<string,函数指针>, 如果这个函数指针要指向类成员函数,可能就和一般的函数指针有点不一样了.

当然也可以采用boost 中的 bind  和 function 来实现.

#include <stdio.h>
#include <iostream>
#include <map>
#include <boost/function.hpp>
#include <boost/bind.hpp>

using namespace std;
class A
{
public:
	void Fun1()
	{
		cout<<"A::Fun1"<<endl;
	}
	void Fun2()
	{
		cout<<"A::Fun2"<<endl;
	}

protected:
private:
};

typedef void (A::*FUNTYPE)(void);

void main()
{
	A a;
	FUNTYPE ptr = &A::Fun1;	
	(a.*ptr)();

	//boost 部分
	boost::function<void()> FUN;
	FUN = boost::BOOST_BIND(&A::Fun1,&a);
	FUN();

	getchar();
}

抱歉!评论已关闭.