C++回调函数
回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应[1]。
其实说白了就是把一个函数当做参数传下去。
函数指针:
用一个简单的函数指针来实现回调。该指针只能携带函数的地址,难以传递其他数据。
1 | char * fun(char *p)// 函数fun |
函数指针+在主对象里的用户指针:
用一个函数指针,加一个隐藏在主对象里的用户指针。
这里的“主对象”指注册回调的目标对象,或者说将要调用这个回调的对象。
如果只用一个函数指针来实现回调,会出现一个难以绕过的问题,就是无法绑定捕获变量的lambda,无法绑定类普通成员函数。
1 |
————————————————
参考资料:
[1] https://blog.csdn.net/qq_36327203/article/details/108697677
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Fifish's BBlog!