我对继承方法的虚拟属性感到困惑。虚拟函数继承
假设我们有4个类:A类,B类,C类和D类。 类以这种方式继承:A→B→C→D,其中A是基类。这个时候,我确信这一点:在基类(A类)中开始使用虚拟类的方法声明,使得从基类派生的所有类的方法都是虚拟的,包括派生类的派生类派生类。 (B和C类方法被确定为虚拟的)。
困惑在这里。如果在基类A中没有虚拟成员,该怎么办?相反,让我们说,B类声明一个方法是虚拟的。我假设,这种改变会使属于继承链(C和D类)的所有派生类具有虚拟的功能。所以在逻辑上,B代表C和D,是他们的“基类”,对吧?或者我错了?
快速的建议:如果基类有一个虚方法,我应该强调的属于派生类与虚拟方法休息关键字虚拟?只是为了更具表现力。 –
不是没有必要。在基类中执行一次后,所有子类都可以更改函数实现(它的所有继承)。 – theta
@RobertEagle在派生类中添加'virtual'或'override'不是必需的*,但我会说_yes_,尽可能在视觉上提示函数的语义。 *除非使用像'g ++'这样的编译器,如果这些限定符丢失,会提供警告,并且您告诉将警告视为错误。 –