MKo*_*MKo 17 c++ function-pointers
我最近发现在C++中有一个引用功能概念:).因此,存在指向函数的指针和指向成员函数的不同类型.问题出现了.是否有"参考成员功能"概念?
我尝试编译以下代码,但GCC 3.4.6给出了错误.
#include <iostream>
using namespace std;
class A {
public:
virtual void Af() const {
cout << "A::Af()" << endl;
}
};
int main() {
typedef void (A::& MemFnc)() const;
MemFnc mf = &A::Af;
A a;
(a.*mf)();
return 0;
}
Run Code Online (Sandbox Code Playgroud)
Naw*_*waz 21
在C++中没有这样的称为成员的引用.
语言规范在一份说明(§8.3.3/ 3 - 2003)中明确指出,
指向成员的指针不应指向类(9.4)的静态成员,具有引用类型的成员或"cv void".[注意:另请参见5.3和5.5."指向成员的指针"类型与"指针"类型不同,也就是说,指向成员的指针仅由指向成员声明符语法的指针声明,而不是由指针声明符语法声明.C++中没有"reference-to-member"类型.