首页 > 解决方案 > 成员函数指针和引用

问题描述

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() 的指针。两个问题,可能相关:

一个。为什么不允许引用成员函数?

湾。为什么成员函数不像自由函数那样衰减为指针?

标签: c++

解决方案


推荐阅读