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()

