这个问题已经在这里有了答案:




7年前关闭。






分析器

class Analyzer
{
public :

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

    Analyzer(){

    }
    ~Analyzer(){

    }

};

分析器
    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";
    }

在编译过程中,它显示以下错误:



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

最佳答案

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

#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)()

10-04 12:57