C++ 多文件项目中的启动线程

C++ 多文件项目中的启动线程,c++,multithreading,c++11,C++,Multithreading,C++11,我遇到了多线程和多文件项目的问题。在使用单个文件项目进行测试时效果很好,但是当我试图将我的头与我的实现分开时,有什么方法可以让它工作吗 我得到的错误是: 错误C3867:“class1::Update”:函数调用缺少参数列表;使用“&class1::Update”创建指向成员的指针 遗憾的是,那里的建议不起作用。任何帮助都将不胜感激 类别1.H class class1 { public: class1(); ~class1(); private: thread sT

我遇到了多线程和多文件项目的问题。在使用单个文件项目进行测试时效果很好,但是当我试图将我的头与我的实现分开时,有什么方法可以让它工作吗

我得到的错误是: 错误C3867:“class1::Update”:函数调用缺少参数列表;使用“&class1::Update”创建指向成员的指针

遗憾的是,那里的建议不起作用。任何帮助都将不胜感激

类别1.H

class class1
{
public:
    class1();
    ~class1();


private:
    thread sThread;
    void Update();
};
类别1.cpp

int class1::Initialize()
{
    this->sThread = std::thread(Update);
}

正如您所说,错误是:

'class1::Update': function call missing argument list; use '&class1::Update' to create a pointer to member
那就这么做吧。一旦这样做了,您就会发现需要使用
std::bind()
将类的实例附加到成员函数。这看起来像:

thread(bind(&class1::Update, this))

我现在有了这个->sThread=std::thread(绑定(&class1::Update,this));我得到这个错误:错误491错误LNK2019:未解析的外部符号“private:void u thiscall class1::Update(void)”(?Update@class1@@AAEXXZ)在函数“public:int\uu thiscall class1::Initialize(void)”中引用(?Initialize@class1@@QAEHXZ)忽略这一点。意外地将更新的实现注释掉了。