这个问题已经在这里有了答案:
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)()