阅读量: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++成员函数指针的回调功能。在实际应用中,可以用类似方式将回调函数传递给其他类或库,并在特定事件发生时触发回调。