std::bind绑定成员函数
时间: 2023-07-08 17:23:14 浏览: 100
C++11中lambda、std::function和std:bind详解
5星 · 资源好评率100%
可以使用std::bind函数来绑定成员函数。在绑定成员函数时,需要指定对象的地址作为第一个参数,然后是成员函数的指针。例如,如果有一个类MyClass,其中有一个成员函数printMessage(),可以使用如下方式绑定该函数:
```
MyClass obj;
auto func = std::bind(&MyClass::printMessage, &obj);
```
在这个例子中,&obj是MyClass对象的地址,&MyClass::printMessage是printMessage()成员函数的指针。现在,我们可以使用func来调用printMessage()函数,就像这样:
```
func();
```
这将调用obj.printMessage()函数。注意,这里使用了自动类型推导auto关键字来推导func的类型,因为std::bind函数返回的类型是非常复杂的。
阅读全文