读书人

在类中定义函数指针成员和使用函数指针

发布时间: 2012-03-09 16:54:57 作者: rapoo

在类中定义函数指针成员和使用函数指针的问题
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)();

读书人网 >C++ Builder

热点推荐