boost::function 通过boost::bind调用类成员函数

2016-08-20 10:36:49来源:http://muzizongheng.blog.51cto.com/856912/1333070作者:muzizongheng人点击


<?xml version="1.0" encoding="UTF-8"?> 1. 首先引用boost::function和boost::bind的头文件和库;
#include "boost/bind.hpp"#include "boost/function.hpp"
2. 声明自己的function模板
typedef boost::function<void(ICommandContextEx*)> CMDHANDLER;
3. 写出自己类及成员函数
class CCommunicationMap{public:CCommunicationMap(void);~CCommunicationMap(void);
public:void TestCommand( int nParam);};
4.关联成员函数到boost::function中
CCommunicationMap m_communication;
CMDHANDLER fun;fun = boost::bind(&CCommunicationMap::TestCommand, &m_communication, _1);
上面的bind语法的意思: 传入类成员函数指针, 类对象指针, _1表示占位符, 通过_1占位传入参数int nParam;
5. 调用方法
fun(22); //22通过_1传入。

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台