多继承

Posted jly594761082

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多继承相关的知识,希望对你有一定的参考价值。

一、概念

  一个类有多个直接基类的继承关系称为多继承,多继承会引入其他问题:

  1.祖先类obj中有一个变量a,然后有P1和P2两个类分别都继承obj类,再有C1类多继承P1和P2时,定义的对象使用变量a时,编译不知道引用P1的还是P2的变量a,会编译报错(变量a的二义性),可以使用虚继承解决此问题,

    如:class P1:virtual public obj   //加上virtual后,c++编译器会给变量偷偷添加属性,这样此类的sizeof()会增加4个字节;

  2.如果P1和P2类同时含有同名的成员,多继承P1和P2时,则不能通过虚继承来解决,使用同名变量需要作用域分析符来区分,否则编译报错;

  3.添加虚继承后,构造和析构的函数会多调用一遍;

 

以上是关于多继承的主要内容,如果未能解决你的问题,请参考以下文章

python 单继承多继承菱形继承

python多继承

多继承与多重继承

python-- 类的多继承经典类新式类

单继承与多继承

18. 多继承语法及菱形继承