考虑以下显示多级继承的示例代码:
Case1:这里类derived1
是base
通过虚拟继承从类derived2
派生而来的,类是derived1
直接从类派生而来的。
class base
{
};
class derived1 : virtual public base
{
};
class derived2 : public derived1
{
};
Case2 :与 Case1 相同,只是不涉及虚拟继承
class base
{
};
class derived1 : public base // no virtual inheritance
{
};
class derived2 : public derived1
{
};
derived2
假设我在这两种情况下都创建了一个类的对象。
Case1 和 Case2 在子对象的包含方面有何不同
derived2
?Case1 是否对 Case2 有意义?
PS:我很清楚虚拟基类在多重继承期间的重要性。