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

   2024-10-08 9200
核心提示:要实现回调功能,可以使用C++类的成员函数指针作为回调函数的参数,然后在需要执行回调的地方调用该函数指针。首先定义一个类,

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

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号