C++ 中回调函数详解及简单实例

C++ 中回调函数详解及简单实例,第1张

概述C++中回调函数详解及简单实例回调函数调用关系图 对于第一种情况,主程序可以从执行到回调函数,也可以不执行回调函数,关键看宿主函数是否调用了回调函数。

C++ 中回调函数详解及简单实例

回调函数调用关系图

 

对于第一种情况,主程序可以从执行到回调函数,也可以不执行回调函数,关键看宿主函数是否调用了回调函数。

对于第二种情况,主程序可以从执行到回调函数,也可以不执行回调函数,关键看宿主函数是否调用了回调函数。主程序不知道宿主函数什么时候调用回调函数,因为调用函数启动了线程,这样,主程序就不必关心宿主函数什么时候调用回调函数了,主程序可以释放出来做自己的事了。

代码示例

#include <stdio.h>  typedef voID(*lpFunc)(voID *,char *);  // 函数指针 // 回调函数的宿主函数,在这里回调用函数被使用,voID GetCallBack(voID * lpVoID,lpFunc callback) {     callback(lpVoID,"test"); }     class A{ public:     A(){};         voID outname(char szAlarm[]){        printf("my name is %s /n",szAlarm);        }         // 被宿主调用的回调函数     static voID fCallback(voID *lpVoID,char szAlarm[]){        A * p = (A*)(lpVoID);        p->outname(szAlarm);     }         //调用外部宿主函数,当Test函数调用过宿主函数以后,Test就再也不关心宿主函数     //什么时候调用回调函数了,因为那时宿主函数自己的事了     voID test(){        GetCallBack(this,fCallback);     } };  int main(voID) {     A a;     a.test(); } 

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

总结

以上是内存溢出为你收集整理的C++ 中回调函数详解及简单实例全部内容,希望文章能够帮你解决C++ 中回调函数详解及简单实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1244867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存