可能重复:
使用成员函数启动线程
我对 C++ 很陌生。我的经验主要是使用 javascript 和 java。
我在 Lion 上使用 Xcode。以下代码给了我一个编译错误“必须调用对非静态成员函数的引用;您的意思是不带参数调用它吗?”
class MyClass {
private:
void handler() {
}
public:
void handleThings() {
std::thread myThread(handler);
}
};
我也尝试过this->handler
,&handler
和其他变体,但都没有奏效。这段代码虽然编译并完成了我想要的:
class MyClass {
private:
void handler() {
}
public:
void handleThings() {
std::thread myThread([this]() {
handler();
});
}
};
为什么我不能传递对成员函数的引用?我的解决方法是最好的解决方案吗?