我有一个与 C++ 和线程相关的问题。我比 C++ 更熟悉 Java,这个错误让我很困惑。
想象一下,在 xh 文件中,我有一个类,例如:
class A{
public A();
public virtual void* func(void*);
public virtual void func2();
public virtual void func3();
};
在 x.cpp 文件中,我想这样做:
void* A::func(void*) {
while(....)
func2();
return NULL;
}
void A::func2() {
...some stuff there...
}
void A::func3() {
pthread_t t1;
pthread_create(&t1, NULL, &A::func, NULL);
void* result;
pthread_join(t1,&result);
...some other stuff...
}
问题是它挂起并出现以下错误:
“错误:ISO C++ 禁止使用不合格或带括号的非静态成员函数的地址来形成指向成员函数的指针。”
我应该怎么做才能解决这个问题?
谢谢。