【发布时间】:2015-09-09 11:51:41
【问题描述】:
我正在修改代码,将类 A 变为虚拟类,并添加两个类 C 和 B 作为派生类。 我有另一个 D 类,它最初有一个向量 A 作为成员。 D 类中的一个函数的返回类型为 A。由于 A 现在是一个虚拟基类,我如何修改此函数以使其返回 B 或 C?
【问题讨论】:
-
请发布您的代码,以便我们提供最佳答案。如果你有一个vector,那么所有成员都是A类型,而不是派生类B、C或D。如果你只有一个返回A*的函数,你可以重载该函数以返回B*或C *.
-
你不能改变函数的返回类型。它必须始终返回对 A 的引用(可以是 B 或 C 的实例)。然后你有 dynamic_cast 它,如果你想访问 A 中不存在的函数作为虚拟函数。
标签: c++ function inheritance polymorphism