C++ 多重继承概述
C++中的多重继承是指一个派生类可以从多个基类中继承属性和方法。
多重继承的作用是让 C++ 中的类更灵活地组合,以及实现代码的高复用。
多重继承的语法如下:
access_specifier可以是public、protected或private,用来指定继承的基类成员在派生类中的访问权限。
如果不指定,默认为private。
C++ 多重继承注意事项
多重继承中,如果两个或多个基类具有同名的成员函数或成员变量,派生类必须通过作用域限定符来指明使用哪个基类的成员。
我写个 demo:
多重继承也可能导致菱形继承问题,即两个不同的基类继承自同一个基类。
而派生类又同时继承这两个基类,从而导致派生类中存在两份相同的基类成员,这个问题可以通过虚继承来解决,即将公共基类标记为虚基类。
我再写个 demo:
在上述我写的 demo 中,Base 被标记为虚基类,这样 Derived3 中就只有一份 Base 的成员 x。
如果不标记为虚基类,Derived3 中将有两份 x 成员,从而导致不确定性。
总结:多重继承可以增强 C++ 中的类的灵活性和代码重用性,但需要注意可能出现菱形继承问题。