【发布时间】:2010-09-08 18:26:48
【问题描述】:
在 C++ 中,成员函数指针可以用来指向派生(甚至是基)类成员吗?
编辑:
也许一个例子会有所帮助。假设我们有三个类的层次结构X、Y、Z,按照继承顺序。
因此Y 有一个基类X 和一个派生类Z。
现在我们可以为类Y定义一个成员函数指针p。这写成:
void (Y::*p)();
(为简单起见,我假设我们只对签名为 void f() 的函数感兴趣)
这个指针p现在可以用来指向类Y的成员函数。
那么这个问题(实际上是两个问题)是:
-
p可以用来指向派生类Z中的函数吗? -
p可以用来指向基类X中的函数吗?
【问题讨论】:
-
你为什么要这样做?
-
我同意马特的观点。你的问题需要澄清。您是否只是想知道成员函数指针是否与虚函数一起使用?如果是这样,那么答案是肯定的。如果您想问其他问题,请澄清。
-
我认为这很清楚。 +1 和 smh:您需要进一步解释吗?请指出是不是这样。
标签: c++ inheritance oop member-function-pointers