类成员函数作为回调函数
1、类静态成员函数作为回调函数
1)类定义
CommonFunctions.h class CommonFunctions { public: CommonFunctions(); static int add_test(int a, int b); };
CommonFunctions.cpp #include "CommonFunctions.h" CommonFunctions::CommonFunctions() { } int CommonFunctions::add_test(int a, int b) { return a + b; }
2)应用实例
#include <iostream> #include "CommonFunctions.h" typedef int(*CallBackFunction)(int a, int b); CallBackFunction CallBackFunction_PTR; void set_call_back(CallBackFunction cbf) { CallBackFunction_PTR = cbf; } int main() { set_call_back(CommonFunctions::add_test); std::cout << CallBackFunction_PTR(5, 6); std::cout << "\r\n"; system("pause"); }
2、类的普通成员函数不能作为回调函数
回调函数的本质是传递函数指针,即函数地址,类的普通成员函数地址是在类实例化完成后确定的,而类的静态成员函数或者全局函数地址是确定的,所以静态成员函数或全局函数在代码编译阶段均不报错,类的普通成员函数在代码编译阶段提示错误;但是类的普通成员函数也可通过this指针静态处理等方式完成身份转换,可作为回调函数使用,方法尚未进行仔细学习,后续有机会将再补充。
又没有什么可说的
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端