首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

在类中定义函数指针成员和使用函数指针的有关问题

2012-03-09 
在类中定义函数指针成员和使用函数指针的问题ifndefUnit2H#defineUnit2H//------------------------------

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

热点排行