首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问一个回调函数的有关问题

2013-04-20 
请教一个回调函数的问题向各位高人请教一个问题,想让一个类的成员变量调用本类的函数:#include iostream

请教一个回调函数的问题
向各位高人请教一个问题,想让一个类的成员变量调用本类的函数:


#include <iostream>

class Master;

typedef void (Master::*call_back_t)(void);

class Slave
{
public:
    Slave(call_back_t p_callback)
    {
        mp_callback = p_callback;
    }

    void print()
    {
        (this->mp_callback)();
        (this->*mp_callback)();
        (*mp_callback)();
        (mp_callback)();
    }

private:
    call_back_t mp_callback;
};

class Master
{
public:
    Master() : slave_(print)
    {
    }

    void print()
    {
        std::cout << "Haha" << std::endl;
    }

    void call()
    {
        slave_.print();
    }

private:
    Slave slave_;
};

int main(int argc, char* argv[])
{
    Master master;
    master.call();
    return 0;
}


调试跟踪发现回调函数的地址已经正确设定,但是在调用的时候提示:
error C2064: term does not evaluate to a function

请问这种情况应该如何使用回调函数,多谢解答! callback cpp
[解决办法]
可以参考我写的这个简单示例,地址:http://download.csdn.net/detail/cq20110310/4807468
希望对你有帮助
[解决办法]
函数指针的调用是这样:
(this->mp_callback)();;
        (mp_callback)();
你这两个是什么意思?
(this->*mp_callback)();
(*mp_callback)();

[解决办法]
用模板构造这种东西,
一般传入两个东西: 对象+函数

热点排行