回调,本质就是一个函数指针的调用过程,把函数指针A传递给另一个函数B,在另一个函数B处理完成后,再去调用函数A,这个过程称为回调,函数A称为回调函数。
本来想做一个简单回调,模块a的函数传递到b模块,再回调a的成员函数,后来发现b模块也要回调a,内容基本一样,就想到了用多态来做动态调用。
class BaseCall
{
public:
virtual void getMsg() = 0;
};
class Entrance;
typedef void(Entrance::*PFUNC)();
class Framework
{
public:
void receiveMsg(Entrance* p,PFUNC p1)
{
(p->*p1)();
}
};
class Entrance:BaseCall
{
public:
Framework work;
void getMsg()
{
}
void Run()
{
work.receiveMsg(this,&BaseCall::getMsg);
}
};
int main()
{
Entrance e;
e.Run();
}
回调函数
最新推荐文章于 2024-07-24 07:40:23 发布