C++成员函数指针如何实现回调

avatar
作者
猴君
阅读量:0

要实现回调功能,可以使用C++类的成员函数指针作为回调函数的参数,然后在需要执行回调的地方调用该函数指针。

首先定义一个类,其中包含一个成员函数指针作为回调函数:

class Callback { public:     typedef void (Callback::*CallbackFunction)();     CallbackFunction callbackFunction;      Callback() : callbackFunction(nullptr) {}      void setCallback(CallbackFunction func) {         callbackFunction = func;     }      void executeCallback() {         if (callbackFunction) {             (this->*callbackFunction)();         }     }      void callbackHandler() {         std::cout << "Callback function is called" << std::endl;     } }; 

然后定义一个函数,接受一个Callback类的实例作为参数,并调用其成员函数指针:

void triggerCallback(Callback& callback) {     callback.executeCallback(); } 

接着创建一个Callback的实例,并设置其成员函数指针为回调函数:

Callback callback; callback.setCallback(&Callback::callbackHandler); 

最后调用触发回调的函数:

triggerCallback(callback); 

这样就实现了C++成员函数指针的回调功能。在实际应用中,可以用类似方式将回调函数传递给其他类或库,并在特定事件发生时触发回调。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!