c++非类成员函数指针定义 void (*pfun)( void);
为了叙述方便,先定义一个类:
class A
{
void (*pAfun)( void);
};
A类的成员数据pAfun和void (*pfun)( void)类型是不同的,
pAfun的类型是 void(A::*)(void),
pfun的类型是void (*)(void).
但是能否进行强制转换呢?答案是不能,原因分析:
void(A::*)(void)类型指针指向的函数可以访问类A的成员函数和成员数据,定义一个类对象a,
A a;
a.pAfun指针指向的函数必须包含a的this指针信息,但是pfun不可能包含a的this信息,所以肯定不能将两者进行
强制转化,强制转化必定是失败的.