无法使用函数指针调用函数

Not able to call a function using function pointer

本文关键字:函数 指针 调用      更新时间:2023-10-16

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

Analyzer.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个参数的函数。

有人能告诉我如何避免这种情况吗?

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

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