C++ 中的多级继承
多级继承是一种继承类型,一个类派生自另一个派生类,从而创建一个继承链,允许其通过多层级的类传递其属性和行为,或从其前身继承。
实现多级继承
要实现多级继承,请以分层方式定义类,其中一个类继承自另一个类。
语法
C++ 中多级继承的语法 -
class baseClass { //这是基类成员 }; class derivedClass1 : public baseClass { // derivedClass1 的成员 }; class derivedClass2 : public derivedClass1 { // derivedClass2 的成员 };
此处,
- baseClass 是其他类派生自的顶级类。
- derivedClass1 是从 baseClass 继承的类。
- derivedClass2 继承自 derivedClass1,从而创建了一个多级结构。
多级继承框图
请参阅下面的框图,演示多级继承 -

根据上图,"Shape"是基类,它派生到"Polygon"类,"Polygon"类又派生到"Triangle"类类来实现多级继承。
多级继承示例
在以下示例中,我们将实现多级继承 -
#include <iostream> using namespace std; // 基类 class Shape { public: void display() { cout << "This is a shape." << endl; } }; // 第一个派生类 class Polygon : public Shape { public: void sides() { cout << "A polygon has multiple sides." << endl; } }; // 第二个派生类 class Triangle : public Polygon { public: void type() { cout << "A triangle comes under a three-sided polygon." << endl; } }; int main() { Triangle myTriangle; myTriangle.display(); // From Shape myTriangle.sides(); // From Polygon myTriangle.type(); // From Triangle return 0; }
输出
This is a shape. A polygon has multiple sides. A triangle comes under a three-sided polygon.
说明
- 首先,创建一个名为 Shape 的基类,并带有一个公共方法 display(),该方法打印"This is a shape"。
- 接下来,第一个派生类 Polygon 继承自 Shape(或基类),这意味着它可以访问 Shape 类的成员,包括 display()
- 第二个派生类 Triangle 继承自 Polygon 类,这使得 Triangle 可以使用 display() 和 sides() 方法。
主函数
- 一个名为 myTriangle 的 Triangle 实例已创建。
- display() 将首先通过调用 Triangle 类 来访问 display() 方法,然后由于继承关系,再调用 Shape 类。
- 类似地,sides() 将继承自 Polygon 类 的 sides() ,
- 并且 myTriangle.type() 将继承自 Triangle 类的 type()