c++回调函数
回调函数本质上也是普通函数,只是调用机制有所区别——首先通过传参的形式将该函数的地址传递给其他函数,然后在其他函数中通过函数指针调用该函数。在其他函数中通过函数指针调用该函数的过程称为回调,而作为被调用的该函数则被称为回调函数。
为什么需要回调函数?
满足接口兼容性
回调函数必须通过函数指针进行传递和调用,为了简化代码,一般会将函数指针起个别名,格式为:
typedef 返回值类型 (*指针名) (参数列表)
回调函数规避了必须在调用函数前声明的弊端,而且能够让用户直观地感受到自己定义的函数被调用。
需注意,普通c语言风格函数和类静态成员函数可以直接作为回调函数使用,而如果要将类非静态成员函数作为回调函数,需要将其进行封装,如
std::function<void(int)> cb = std::bind(&ClassX::func, this, placeholders::_1);
因为类非静态成员函数存在默认参数this指针,若直接去使用会使得参数类型不匹配。
转载文章:https://blog.csdn.net/qq_45311905/article/details/116504377
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?