zoukankan      html  css  js  c++  java
  • boost::function 通过boost::bind调用类成员函数

    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传入。
  • 相关阅读:
    创建pycharm项目时项目解释器的选择
    chrome插件网站
    在chrome中屏蔽百度推荐
    annotation使用示例
    scala编程第16章学习笔记(3)——List类的高阶方法
    Eclipse常用快捷键
    Ubuntu常用命令
    scala编程第16章学习笔记(2)
    scala编程第16章学习笔记(1)
    scala编程第15章
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3169075.html
Copyright © 2011-2022 走看看