c++ - 成员函数指针和引用
问题描述
void f(int x, int y) { }
struct S {
void g(int x, int y) { }
};
void (*pf)(int, int) = f;
void (&rf)(int, int) = f;
void (S::*pg)(int, int) = &S::g;
//void (S::&rg)(int, int) = S::g;
我可以获取指向自由函数 f() 的指针以及引用。但我只能取一个指向成员函数 S::g() 的指针。两个问题,可能相关:
一个。为什么不允许引用成员函数?
湾。为什么成员函数不像自由函数那样衰减为指针?