【发布时间】:2013-07-24 10:27:17
【问题描述】:
我对继承方法的虚拟属性感到困惑。
假设我们有 4 个类:A 类、B 类、C 类和 D 类。 这些类是通过这种方式继承的:A -> B -> C -> D,其中 A 是基类。
此时,我确信这一点:在基类(A 类)中以 virtual 开头的类方法声明,使得从基类派生的所有类的方法都是虚拟的,包括派生的派生类类。 (B 和 C 类方法被确定为虚拟)。
混乱就在这里。如果在基类 A 中没有任何虚拟成员怎么办。相反,假设类 B 声明了一个虚拟方法。我假设,此更改将使属于继承链(C 和 D 类)的所有派生类的函数成为虚拟函数。所以从逻辑上讲,B 代表 C 和 D,是它们的一种“基类”,对吧?还是我错了?
【问题讨论】:
标签: c++ class inheritance virtual-functions