多重继承,虚基类

Posted Respect@

tags:

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

为什么要使用多重继承?

陈赫的显赫世家
在这里插入图片描述

门阀世族的婚姻, 为什么要”门当户对”?
就是为了实现”多重继承”
蒋介石与宋美龄
在这里插入图片描述

什么是多重继承

多继承/多重继承:
一个派生类可以有两个或多个基类(父类)。
多重继承在中小型项目中较少使用,在Java、C#等语言中直接取消多继承, 以避免复杂性.

多重继承的用法

将多个基类用逗号隔开.

实例:
例如已声明了类A、类B和类C,那么可以这样来声明派生类D:
class D: public A, private B, protected C{
//类D自己新增加的成员
};
D 是多继承形式的派生类,
D 有3个父类(基类)
它以公有的方式继承 A 类,
以私有的方式继承 B 类,
以保护的方式继承 C 类。
D 根据不同的继承方式获取 A、B、C 中的成员.

多继承的构造函数

多继承的构造函数的调用顺序
基类构造函数的调用顺序和和它们在派生类构造函数中出现的顺序无关,
而是和声明派生类时基类出现的顺序相同。

多重继承在”菱形继承”中的重大缺点

在这里插入图片描述

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

多重继承,虚基类

作用域分辨操作符,虚基类,赋值兼容规则。哪些可以解决多重继承二义

C++ 虚基类

C++的多重继承

c++解决二义性的方法

C++ 继承和多态