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,建立了一個多層結構。

多層繼承的框圖

請參見下面的框圖,該圖演示了多層繼承:

C++ Multilevel Inheritance

根據上圖,“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()
廣告