Chinaunix

标题: c++类成员函数作为pthread_create参数时类型不匹配的问题 [打印本页]

作者: MyStar_api    时间: 2008-01-11 21:15
标题: c++类成员函数作为pthread_create参数时类型不匹配的问题
比如在类A中有成员函数void * abc(void* arg)
A a;//构造对象a
pthread_t i;
pthread_create(&i,NULL,a.abc,NULL);
出错提示:void* (class A:(void *)does not match void* (*)(void*);
类型不匹配,如何解决?
作者: lgfang    时间: 2008-01-11 22:35
发代码的时候用代码标记上。

pthread_create 的参数必须是静态成员函数,否则你光传一个函数,它怎么和某个对象对应起来?

严格地说,如果一个类的非静态成员函数的原型(signature)为 void * start_routine(void *),那么它的实际类型并不是   void * start_routine(void *) ,因为编译时编译器会它转成类似 void* f(Type* this, void*) 的类型。

[ 本帖最后由 lgfang 于 2008-1-11 22:43 编辑 ]
作者: MyStar_api    时间: 2008-01-12 15:20
标题: 还是不行
我用了静态成员函数但还是不行 提示问题还是一样
作者: MyStar_api    时间: 2008-01-12 15:26
问题已解决 是我太粗心饿 谢谢




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2