当我在成员函数的类中调用std :: thread时,我必须通过'这个'作为我的第一个参数。
如果我在编译时没有遇到任何错误。
为什么'这个'需要?
threads[i] = std::thread(&ClName::thread_exec, this);
以上是相关代码的片段。
答案 0 :(得分:3)
每个成员函数都会收到一个隐藏的参数this
,它指向实际的对象。在二进制文件中只有一个方法代码,它与对象无关(但不是类不可知)。你必须告诉他们他们必须处理哪个对象。