分类: C/C++
2010-04-13 13:07:15
C++ 成员函数指针 转 C函数指针
http://plainmind.spaces.live.com/blog/cns!E27C33778F7E30FD!327.entry
上网友文章指出 指向成员函数的指针并非指针,是一个类内偏移
C++ 普通成员函数不能直接转成C 风格的函数指针。
但是C++的static 类成员函数可以直接转化成C风格的函数指针。这样当要使用C风格的函数指针时候,通过中间 static 类成员函数 间接调用普通成员函数。
比如使用C 库时候,可能需要C风格的函数指针做回调,例如pthread_create 就需要一个
void* (*func) (void*); 的函数指针,要把一个类成员函数填进去就只能通过static 成员函数了。当然在模块了直接声明 static void* call_back(void*) 也可以;
下面贴一个我自己测试时候的代码。
可以 g++ 编译运行 。
class CFun