bind的参数里面有this是什么意思
时间: 2023-08-04 20:02:53 浏览: 115
详解JS中的this、apply、call、bind(经典面试题)
5星 · 资源好评率100%
在使用std::bind绑定成员函数时,需要将对象的指针作为第一个参数传入。因为成员函数在调用时需要通过对象来访问,因此需要指定对象的指针。在这种情况下,可以将this指针作为std::bind函数的第一个参数进行传递,从而将对象与成员函数绑定起来。
举个例子,假设有这样一个类:
```c++
class MyClass {
public:
void print_sum(int a, int b) {
std::cout << a + b << std::endl;
}
};
```
我们想将MyClass的print_sum函数绑定到一个特定的对象上,可以这样使用std::bind:
```c++
MyClass obj;
auto print_5_sum = std::bind(&MyClass::print_sum, &obj, 5, std::placeholders::_1);
print_5_sum(3); // 输出 8
```
在这个例子中,我们使用std::bind将print_sum成员函数绑定到obj对象上,将5作为第一个参数绑定,将第二个参数使用占位符std::placeholders::_1来代替。最后,我们生成了一个新的函数对象print_5_sum,并将3作为它的参数,调用该函数对象时,实际上就是调用obj的print_sum函数,将5和3作为参数传递给它,输出8。
阅读全文