为什么在类中声明一个函数指针,给它赋一个成员函数的地址是错误的?
我有一段这样的代码:
class a
{
void (*fun)(); //函数指针
void test(); //用作赋值的成员函数
void doTest(); //测试函数
};
void a::test()
{
}
void a::doTest()
{
fun=test; //对函数指针赋值。注意,VC编译器认为这句是错误的。
}
现在我的问题是: 为什么fun=test;这句在编译器里通不过,
错误信息是:error C2440: '=' : cannot convert from 'void (__thiscall a::*)(void)' to 'void (__cdecl *)(void)'
There is no context in which this conversion is possible
那么如果我要在类中声明一个函数指针,以后要赋值给它一个本类(或其他类)的成员函数地址,该怎么写?请高手指点一下。