class A
{
    void Func();
    typedef void (A::*FuncPoint)();
    FuncPoint pFunc;
    void Exec();
}
void A::Exec()
{
    pFunc = Func;
    pFunc();//报错  error C2064: term does not evaluate to a function
}
是什么原因啊????

解决方案 »

  1.   

    看不懂~~
    A::*FuncPoint???
    怎么不见啊?
    FuncPoint pFunc;??
    指针吗?
      

  2.   

    pFunc = &A::Func;
    (this->*)pFunc();
    这样写
      

  3.   

    akirya 能详细的给我们讲讲吗???
      

  4.   

    错了
    是这样调用
    (this->*pFunc)();
      

  5.   

    我可以在类的外面调用该函数指针吗?如:
    A*  a;
    ...
    (a->*pFunc)();//貌似这里还是报错
      

  6.   

    简单的例子
    class A
    {
    public:
        void Func(){}
    };
    int main(){
        A* a=new A;
        void (A::*pFunc)() = &A::Func;
        (a->*pFunc)();
    }
      

  7.   

    class A
    {
    public:
        void Func(){}
    };
    int main(){
        A a;
        void (A::*pFunc)() = &A::Func;
        (a.*pFunc)();
    }
      

  8.   

    void (A::*pFunc)() = &A::Func;//这句有错误哦
      

  9.   

    不好意思 是我搞错了 以上的代码没问题 谢谢akirya