1.多继承的表示方式
class 子类 : 继承权限1,父类1,继承权限2,父类2,... 继承权限n,父类n
{
//多重继承的语法:
//子类继承多个父类中的所有属性与方法。
}
2.优缺点
优点:提高代码的复用性
缺点:代码冗余、当父类中有同名函数或属性时,出现二义性,需要使用类域访问符(::)进行访问。如果一定要使用多继承,推荐使用多个抽象类(没有具体属性,只有纯虚函数)。
3.内存布局
注意:在多继承时,使用父类指针指向子类对象时,父类指针永远指向父类类域的起始地址。当使用父类指针指向子类对象时,如果要释放子类的空间,请进行转型。这样可以避免内存的泄漏问题。
如:Phone的起始地址是0x00000000,Computer的起始地址是0x00000004
cout << "-------------------------" << endl;
//p1 输出地址为 0x00000004
Computer* p1 = new Pad();
cout << p1 << endl;
cout << "-------------------------" << endl;
cout << "-------------------------" << endl;
//p1 输出地址为 0x00000000
Phone* p1 = new Pad();
cout << p1 << endl;
cout << "-------------------------" << endl;
4.菱形继承
5.虚继承、虚基表指针、续集表之间的关系和内存布局
TODO