【发布时间】:2012-12-28 11:54:45
【问题描述】:
可能重复:
How to call a function using pointer-to-member-function
分析器.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 个参数的函数。
谁能告诉我如何避免这种情况?
【问题讨论】:
-
您应该阅读本书中有关指向成员函数的指针的章节,因为那不是普通的函数指针。 -1 表示没有先前的研究。
-
我读了它,但仍然无法找出这就是我在此处发布此内容的原因。根据我的说法,我所做的一切都是正确的 1-函数指针和函数的签名都是相同的。以及调用约定。那我在哪里得到问题?
-
与您的问题无关,但很重要:避免在头文件中使用
using namespace,更好的是:根本不要使用它。这可能会导致命名冲突。 -
@LightnessRacesinOrbit:看起来他理解其中的区别,但并不是说
point();不适用于viku();的成员函数。 +1 提出一个合理的问题。 -
@MikeSeymour:请将鼠标悬停在反对票图标上,并注意缺乏研究是反对票的原因。如何使用指向成员函数的指针在任何优秀的 C++ 书籍中都有介绍,因此这里不需要再次询问。或者,如果没有别的,那就是重复的。
标签: c++ function-pointers