为什么std :: thread需要'这个'在成员函数上调用时?

时间:2014-12-08 18:05:16

标签: multithreading c++11

当我在成员函数的类中调用std :: thread时,我必须通过'这个'作为我的第一个参数。

如果我在编译时没有遇到任何错误。

为什么'这个'需要?

threads[i] = std::thread(&ClName::thread_exec, this);

以上是相关代码的片段。

1 个答案:

答案 0 :(得分:3)

每个成员函数都会收到一个隐藏的参数this,它指向实际的对象。在二进制文件中只有一个方法代码,它与对象无关(但不是类不可知)。你必须告诉他们他们必须处理哪个对象。