猿问

想问一下,怎样在自定义类中的函数使用thread?

#include <iostream>
#include <thread>

using namespace std;

class test
{
public:
void output(const int a)
{
cout << a << endl;
}
void work(const int a)
{
thread th(output,a);
th.join();
}
};

int main()
{
test t;
t.work(10);
/******or
/thread th(t.work,10);
/th.join();
*******/
return 0;
}

写个程序试一下,想在自定义的类的函数中使用thread或者把自定义的类的函数作为thread的驱动函数,但是上面两种写法都不行。
/******or
/thread th(t.output,10);
/th.join();
*******/
注释里面应该是这样



蝴蝶不菲
浏览 109回答 2
2回答

BIG阳

另一种是把 output 声明为静态成员函数class&nbsp;test{public:&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;output(const&nbsp;int&nbsp;a)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;<<&nbsp;a&nbsp;<<&nbsp;endl;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;work(const&nbsp;int&nbsp;a)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;thread&nbsp;th(output,a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;th.join();&nbsp;&nbsp;&nbsp;&nbsp;}};

狐的传说

thread th( &test::output, this, a);
随时随地看视频慕课网APP
我要回答