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()的指针。两个问题,可能有关:
a。为什么不允许引用成员函数?
b。为什么成员函数不像自由函数那样衰减到指针?