参考: 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(); }