我理解在成员函数中使用 virtual
的意思,例如 virtual void frob()
。但是在类声明中使用,例如 class Foo : public virtual Bar
,它的意思是什么?
对于给定的方法,根据以下三个位置 virtual
是否存在,会产生 8 种情况:1)超类的函数;2)该类的继承链;3)这个类的函数。
我认为我理解了 1)和 3)如何相互作用,但是 2)似乎是多余的。是这样吗?我没有理解到什么?
我理解在成员函数中使用 virtual
的意思,例如 virtual void frob()
。但是在类声明中使用,例如 class Foo : public virtual Bar
,它的意思是什么?
对于给定的方法,根据以下三个位置 virtual
是否存在,会产生 8 种情况:1)超类的函数;2)该类的继承链;3)这个类的函数。
我认为我理解了 1)和 3)如何相互作用,但是 2)似乎是多余的。是这样吗?我没有理解到什么?