Toriyung

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

C++11:std::bind函数

就是让一个函数类似于继承了另一个函数的功能,但是可以保留输入的参数

对于普通函数,参数是函数名(隐性转化为函数地址),可以预留位,也可以直接给定默认参数

func1(int a,intb)

auto newfunc1 = bind(func1,_1,_2);
auto newfunc2 = bind(func1,4,_1);

newfunc1(1,2);
newfunc2(3);

 

 

对于成员函数,因为需要知道是哪个对象的成员函数,所以参数是函数地址(注意,只能是地址),对象地址,然后才是参数

复制代码
class A
{
    public:
    func1(int a,int b); //成员函数
}


A a;

auto newfunc = bind(&A::func1,&a,_1,_2);
复制代码

 所以可以在构造函数中先添加一个没有对象实例的函数空壳,等类的对象调用构造函数时,令bind实例化一个对象的成员函数

 

 

 

参考:https://blog.csdn.net/jxianxu/article/details/107382049

posted on   Toriyung  阅读(28)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示