std::function获取this
时间: 2023-09-03 20:07:59 浏览: 166
回答: 使用std::function获取this指针的方法是将成员函数和对象的指针绑定到std::function对象中。通过这种方式,可以在std::function中保存成员函数,并在后续调用时使用正确的对象。通过使用std::bind函数,可以将成员函数和对象指针绑定到std::function对象中。例如,如果有一个成员函数`void MyClass::foo(int x)`,可以使用如下代码将其绑定到std::function对象中:
```
MyClass obj;
std::function<void(int)> func = std::bind(&MyClass::foo, &obj, std::placeholders::_1);
```
在这个例子中,`&MyClass::foo`表示成员函数的指针,`&obj`表示对象的指针。通过使用std::placeholders::_1,可以在调用std::function时传入参数。然后,可以像调用普通函数一样调用std::function对象:
```
func(42);
```
在这个例子中,调用了成员函数`MyClass::foo`并传入了参数42。需要注意的是,为了正确地绑定对象指针,需要使用`&`操作符获取对象的地址。这样,std::function对象就可以正确地调用成员函数了。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [【C++ 包装器类 std::function 和 函数适配器 std::bind】 C++11 全面的std::function和std::bind的入门...](https://blog.csdn.net/qq_21438461/article/details/129581132)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
阅读全文