
- C++基礎
- C++主頁
- C++概述
- C++環境設定
- C++基本語法
- C++註釋
- C++ Hello World
- C++省略名稱空間
- C++常量/字面量
- C++關鍵字
- C++識別符號
- C++資料型別
- C++數值資料型別
- C++字元資料型別
- C++布林資料型別
- C++變數型別
- C++變數作用域
- C++多個變數
- C++基本輸入/輸出
- C++修飾符型別
- C++儲存類
- C++運算子
- C++數字
- C++列舉
- C++引用
- C++日期和時間
- C++控制語句
- C++決策
- C++ if語句
- C++ if else語句
- C++巢狀if語句
- C++ switch語句
- C++巢狀switch語句
- C++迴圈型別
- C++ while迴圈
- C++ for迴圈
- C++ do while迴圈
- C++ foreach迴圈
- C++巢狀迴圈
- C++ break語句
- C++ continue語句
- C++ goto語句
- C++建構函式
- C++建構函式和解構函式
- C++複製建構函式
C++中的多層繼承
多層繼承是一種繼承型別,其中一個類派生自另一個派生類,建立了一個繼承鏈,允許它透過多個級別的類傳遞其屬性和行為,或者從其前身繼承。
實現多層繼承
要實現多層繼承,請以分層方式定義類,其中一個類繼承自另一個類。
語法
C++中多層繼承的語法:
class baseClass { //Here's a base class members }; class derivedClass1 : public baseClass { // Members of derivedClass1 }; class derivedClass2 : public derivedClass1 { // Members of derivedClass2 };
這裡:
- baseClass 是其他類派生的頂級類。
- derivedClass1 是繼承自baseClass的類。
- derivedClass2 繼承自derivedClass1,建立了一個多層結構。
多層繼承的框圖
請參見下面的框圖,該圖演示了多層繼承:

根據上圖,“Shape”是基類,它派生到“Polygon”類,“Polygon”類進一步派生到“Triangle”類,以實現多層繼承。
多層繼承的示例
在下面的示例中,我們實現了多層繼承:
#include <iostream> using namespace std; // Base class class Shape { public: void display() { cout << "This is a shape." << endl; } }; // First derived class class Polygon : public Shape { public: void sides() { cout << "A polygon has multiple sides." << endl; } }; // Second derived class 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類然後呼叫Shape類來訪問display()方法,因為繼承關係。
- 同樣,sides()將繼承自Polygon類的sides(),
- 而myTriangle.type()則繼承自Triangle類的type()
廣告