【C++引用进阶】C++11 回调函数
文章目录
- 【C++引用进阶】C++11 回调函数
回调函数的实现往往是应用层(更上层)的程序拥有,而调用者是底层的程序。
相当于说,底层的程序是一个服务员,应用层程序是客人,客人需要客房服务(A函数),服务员需要在一个应许的时间提醒(调用A函数)客人,具体的提示方式由客户决定(A函数实现细节),但客人需要**提前告知(登记回调函数)**服务员提醒方式
函数的回调主要靠,把定义的函数指针传递给调用的对象。
classA
{
private:// 回调函数std::function<void()> cb_; public:ClassA();void funca();// 设置回调函数void setcb(std::function<void()> fn){cb_ = fn;};
}classB
{
public:// 回调函数的具体实现void funcb();
}classA::classA()
{// 登记回调函数,需要传入this, 如果需要参数就需要// std::placeholders::_xxxthis->setcb(std::bind(&classB:funcb,this));
}void classA::funca()
{// 调用回调函数cb_();
}