高手指点:在类的成员函数里创建线程问题,急!!!
我的一个类里有两个成员函数,在其中一个初始化函数里面创建一个线程,线程执行另一个成员函数,不知该如何写,据说线程执行函数要是静态的,可是我写成静态的还是出错,请各位大侠指点,我写成如下形式:
class MAILGRAPH
{
...
public:
int Init(); //初始化函数,里面创建线程
static void* WriteClass(void *); //线程执行函数
}
int MailGraph::Init()
{ ...
pthread_create(&pid,NULL,WriteClass,NULL);
}
static void *MailGraph::WriteClass(void *arg)
{ ... }
现在编译有错误,错误信息如下:
error: cannot declare member function 鈙tatic void* MailGraph::WriteMailAddrClass(void*)?to have static linkage
不好意思,有乱码,请高手指点,为什么会出错,该怎么写?最好写出代码,多谢!很着急,我在线等!
[解决办法]
static void *MailGraph::WriteClass(void *arg)
{...}去掉这个地方的static