bind函数 - shijiwensjw/C-learning GitHub Wiki
其实boost::bind
的原理是函数对象,而函数对象就是一个重载了()操作符的对象,这样我们就可以像调用一个方法一样来调用一个类上的这个操作符,比如a(),其实你是在调用a这个对象的()方法,而不是调用一个叫a的方法。
注意占位符的概念以及应用
boost::bind(test, _2, 3, _1)
得到一个函数对象b,当我们调用b(3,4)时,相当于调用test(4,3,3)
注意占位符 _1, _2 顺序对应。
一般来说boost::bind有两种方式的调用,一种是对自由方法,也取非类方法, 一种是对类方法。
- 对自由方法来说,直接boost::bind(函数名, 参数1,参数2,...)
- 对类方法来说,直接boost::bind(&类名::方法名,类实例指针,参数1,参数2)