1

可能重复:
如何使用指向成员函数的指针调用函数

分析器.h

class Analyzer
{
public :

    void viku();
    void Bibek();
    void vivek();
    void (Analyzer::*point)();

    Analyzer(){

    }
    ~Analyzer(){

    }

};

分析器.cpp

    using namespace std     
    #include"Analyzer.h"
    void Analyzer::viku(){
        cout<<"Hello viku";
    }
    void Analyzer::vivek(){
        point =&Analyzer::viku; 
        Bibek();   
    }
    void Analyzer::Bibek(){
           point();//Errror
        cout<<"Bibek";
    }

在编译期间它显示以下错误:

错误 C2064:术语不计算为采用 0 个参数的函数。

谁能告诉我如何避免这种情况?

4

1 回答 1

3

指向成员函数的指针与普通函数指针不同。您需要一个实例来调用它们:

#include <iostream>

class A
{
public:
  int foo()
  {
      std::cout << "A::foo here, you can have 42" << std::endl;
      return 42;
  }
};

int main ()
{
  int (A::* point)() = &A::foo;
  A a;

  (a.*point)();
}

在您的情况下,您需要执行以下操作:

(this->*point)()
于 2012-12-28T11:58:25.100 回答