pthread_create的第三个参数(函数入口)不能声明为某个类的成员函数吗?
如果我用pthread_create来创建一个线程,
int pthread_create (pthread_t *THREAD,pthread_attr_t * ATTR,
void*(*START_ROUTINE)(void *), void * ARG);
第三个参数指明了线程的入口, 是一个只有一个(void *)参数的函数.
请问在cpp文件里,是不是这个第三个参数函数是不能声明为某个类的成员函数?我试过,好象是不可以。
如void *classname::func(void *arg)编译会报错。
只有声明为
void *func(void *arg)
才可以。
请问是只能声明为
void *func(void *arg)吗?
[解决办法]
不能,因为类成员(非静态)参数实际上有一个隐藏得this指针
[解决办法]
类成员的话,需要作成静态的。
[解决办法]
可以是全局函数或者某个类的静态成员函数,一般建议使用类的静态成员函数。