多继承中,一个派生类可以有多个基类.多继承是C++颇受争议的一个语法特性,它就像一把双刃剑,在提供便利及强大功能的同时,也带来了一些容易使人产生错误的不便.在此主要说明一下多继承时对象的内存分布:
1. 与单继承相同,首先创建基类的对象,但要遵循一定的顺序,这个顺序是由派生类声明时决定.
2. 和单继承也一样,虚函数表的指针还是在基类的开始部分.
3. 多继承要注意二义性. 一个典型的情况就是"菱形继承".A 直接派生B,C.B,C又都是D的基类.这样,在D中运用方法时出现二义性错误,解决的方法可以加上类限定符来指明是使用的哪个类中的方法. C++ 提供了一种虚拟继承机制,当使用虚拟继承时,公共的基类只存在一个实例,