C++程式演示多層繼承


假設我們有三個類:Vehicle、FourWheeler 和 Car。Vehicle 類是基類,FourWheeler 類派生自它,Car 類派生自 FourWheeler 類。Vehicle 類有一個方法 'vehicle',它列印 'I am a vehicle',FourWheeler 類有一個方法 'fourWheeler',它列印 'I have four wheels',Car 類有一個方法 'car',它列印 'I am a car'。因此,由於這是多層繼承;我們可以從 Car 類的物件訪問所有其他類的方法。我們從 Car 物件呼叫所有方法並列印方法的相應輸出。

因此,如果我們按此順序呼叫方法:car()、fourWheeler() 和 vehicle(),則輸出將為 -

I am a car
I have four wheels
I am a vehicle

為了解決這個問題,我們將遵循以下步驟 -

  • 定義一個新的 Vehicle 類。
    • 定義一個函式 vehicle()
      • print("I am a vehicle")
  • 定義一個新的 FourWheeler 類,繼承自 Vehicle 類。
    • 定義一個函式 fourWheeler()
      • print("I have four wheels")
  • 定義一個新的 Car 類,繼承自 FourWheeler 類。
    • 定義一個函式 car()
      • print("I am a car")

示例

讓我們看看以下實現以獲得更好的理解 -

#include <iostream>
using namespace std;

class Vehicle{
   public:
      void vehicle(){
         cout<<"I am a vehicle\n";
      }
};

class FourWheeler : public Vehicle{
   public:
      void fourWheeler(){
         cout<<"I have four wheels\n";
      }
};

class Car : public FourWheeler{
   public:
      void car(){
         cout<<"I am a car\n";
      }
};
int main(){
   Car obj;
   obj.car();
   obj.fourWheeler();
   obj.vehicle();
   return 0;
}

輸入

Car obj;
obj.car();
obj.fourWheeler();
obj.vehicle();

輸出

I am a car
I have four wheels
I am a vehicle

更新於: 2021年10月12日

12K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.