在类中定义函数指针成员和使用函数指针的问题
ifndef Unit2H
#define Unit2H
//---------------------------------------
class Unit2
{
public:
void Display();
void Choise(int n);
private:
void (Unit2::* pFunc)();
void A();
void B();
void C();
};
#endif
#pragma hdrstop
#include "Unit2.h "
#include <iostream>
using namespace std;
//---------------------------------------
#pragma package(smart_init)
void Unit2::A()
{
cout < < "A() " < <endl;
}
void Unit2::B()
{
cout < < "B() " < <endl;
}
void Unit2::C()
{
cout < < "C() " < <endl;
}
void Unit2::Choise(int n)
{
switch(n)
{
case 1:
Unit2::pFunc = Unit2::A;
break;
case 2:
Unit2::pFunc = Unit2::B;
break;
case 3:
Unit2::pFunc = Unit2::C;
break;
}
}
在给函数指针赋值的时候,总提示说
[C++ Error] Unit2.cpp(32): E2235 Member function must be called or its address taken
原先用pFunc = Unit2::C;也是不行。
请问要怎么解决。。。。。
[解决办法]
这个好像跟编译器有关,试试pFunc = &Unit2::A;
调用的话是实际的对象去调用 object1-> (*pFunc)();