C++中的bind函数讲解
程序员文章站
2023-08-02 20:52:43
1.概述
function是c++11中对于函数,函数指针,函数对象,lambda表达式等可调用函数的汇总,bind函数将一个普通函数或者成员函数转化为可给function对象赋值的对象,使用这两个...
1.概述
function是c++11中对于函数,函数指针,函数对象,lambda表达式等可调用函数的汇总,bind函数将一个普通函数或者成员函数转化为可给function对象赋值的对象,使用这两个函数可以实现c++通用意义上的回调和委托机制.
2.bind 函数返回的函数对象赋值给function对象时的要求是,返回值一定要相同,参数类型需要相同,参数个数需要小于等于function函数对象的参数个数.
#include #include #include using namespace std; class foo{ public: typedef function callback; void methoda(){ cout<<"foo methoda"<
此时编译通过,但此时bind返回的函数其实是一个不需要参数的函数对象,因此说明只能允许参数个数少的函数对象可以赋值给参数个数较多的函数对象,前提是参数类型都匹配.
至于为什么这样设计,将参数少的绑定到参数多的函数中,那么在回调该函数的时候,只需要将不需要的参数丢掉,即可. 如果相反的话,那么会因为需要的参数不够而不能够回调..
应该是这么回事.
结论是参数少的可以绑定到参数多的上面.
上一篇: 积极拥抱.NET Core开源社区