-1

也许这是一个非常基本的问题,但我的面向对象经验来自 Java,这就是为什么我不确定这个问题。

class A
   |
class B
   |
class C

我有class AA::doSmth()作为一种virtual protected方法。我class B继承class A并重新实现doSmth()为一种private方法。现在我想创建class C并修改doSmth()这个类的方法。我想我需要在虚拟中制作doSmth()方法,是吗?class B或者因为class B继承自那里class A并且doSmth()是虚拟的,我也可以简单地修改它class C

4

2 回答 2

0

我需要将 B 类中的 doSmth() 方法设为虚拟,是吗?

virtual不,如果它已经在 class中声明,则不需要这样做AdoSmth()在派生自 的所有类型中都是虚拟的Avirtual如果在覆盖它的每个派生类型中声明它可能有助于使代码更具可读性。

于 2013-06-01T08:29:01.253 回答
0

不,在 C++ 中,如果您将特定函数声明为虚拟函数,它会通过派生类变为虚拟函数。然而,在派生类中添加 virtual 可以提高可读性和理解性,因此它是一个很好的做法

于 2013-06-01T12:26:23.167 回答