我正在使用带有类的 c++11 线程库,它工作正常。
我只需要对此代码的解释,以便我正确理解它。
我的课.h
class foo {
private:
std::thread t1;
void worker();
public:
void work();
};
类.cpp
#include "class.h"
void foo::worker() {
std::cout << "worker..." << std::endl;
}
void foo::work() {
t1 = std::thread(&foo::worker, this);
t1.join();
}
现在是 main.cpp
#include "class.h"
int main(int argc, char **argv) {
foo bar;
bar.work();
}
我不太明白的是线程的类函数的调用。
我使用std::thread(&foo::work, this)
和解释这个调用如下:第一个参数是指向函数的指针,但我不知道为什么我不能在没有&foo::
部分的情况下调用它。第二个参数是线程知道父进程的类本身?
我找不到对此的解释。只有代码,我想理解它。谢谢!