c++ bind this 实现成员函数代替静态函数

bind可以用成员函数来替代静态函数。

回调函数一般使用静态函数,其中需要传入具体对象的指针,然后该对象的成员变量或函数,都需要加上“对象指针->”这个前缀。

bind可以将成员函数用于回调函数。成员函数多了一个隐含的参数this,所以直接用作回调会报错,bind可以将this封装起来(可以理解为骗过编译器)

例如,在 类MainWindow 中有 void action() 成员函数,使用方法如下:

std::function<void()> callbackFunc = std::bind(&MainWindow::action, this);

callbackFunc就可以当作回调函数使用了。

 

参考 c++11:std::bind_std::bind this失效-CSDN博客

读书笔记:C++11新特性:std::bind与成员函数_std::bind绑定成员函数 reference to non-static member fun-CSDN博客

std::bind()和this相遇 - yyfaaa - 博客园 (cnblogs.com)

 

posted @   夕西行  阅读(155)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2023-02-27 Qt对json的修改
2020-02-27 Vec3b
2020-02-27 Mat中的元素类型(如CV_8U)、范围、获取、格式转换
点击右上角即可分享
微信分享提示