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

小弟我的成员函数指针为什么编译通不过

2012-02-27 
我的成员函数指针为什么编译通不过下面是一段测试代码:classTEST{public:TEST():itsID(0){HowMany++}TEST

我的成员函数指针为什么编译通不过
下面是一段测试代码:
class   TEST{
public:
        TEST():itsID(0){   HowMany++;}
        TEST(int   id):itsID(id){HowMany++;}
        virtual   ~TEST(){HowMany--;}
        virtual   void   setID(int);
        virtual   int   getID()   const   {return   itsID;}
        static   int   getHowMany(){return   HowMany;}
private:
        int   itsID;
        static   int   HowMany;
};

void   TEST::setID(int   id){
        itsID   =   id;  
}

int   TEST::HowMany   =   0;
//typedef   int   (TEST::*pFUNC)();
int   main(){
          void   (TEST::*pFunc)(int)   =   0;
        TEST   *test[10];
        TEST   *pTest;
        for(int   i=0;i <10;i++){
                pTest   =   new   TEST(i);
                test[i]   =   pTest;
                pFunc   =   TEST::setID   ;             //就是这一句出错了
                (test[i]-> *pFunc)(i*100);
                cout   < <   TEST::getHowMany()   < <   endl;
        }      
     
        for(int   i=0;i <10;i++){
                delete   test[i];
                test[i]   =   0;
                cout   < <   TEST::getHowMany()   < <   endl;
        }      
        return   0;
}
我检查了一下语法没有问题啊。编译环境是g++

[解决办法]
pFunc = &TEST::setID ;
[解决办法]
LZ的程序在vc6下没错,除了i重复定义了
g++下你注释的那句应该为pFunc = &TEST::setID ;

热点排行