Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ สาธิตการสืบทอดหลายระดับ


สมมุติว่าเรามีรถสามประเภท รถโฟร์วีลเลอร์ และรถยนต์ คลาส Vehicle เป็นคลาสพื้นฐาน คลาส FourWheeler มาจากมัน และคลาส Car นั้นมาจากคลาส FourWheeler Class Vehicle มีวิธี 'vehicle' ที่พิมพ์ 'I am a vehicle', class FourWheeler มีวิธี 'fourWheeler' ที่พิมพ์ 'I have four wheel' และ class Car มีวิธี 'car' ที่พิมพ์ 'I am a car '. ดังนั้น เนื่องจากเป็นมรดกหลายระดับ เราสามารถเข้าถึงวิธีการเรียนอื่น ๆ ทั้งหมดได้จากวัตถุของคลาสรถ เราเรียกใช้เมธอดทั้งหมดจากออบเจ็กต์ Car และพิมพ์ผลลัพธ์ที่สอดคล้องกันของเมธอด

ดังนั้น หากเราเรียกใช้เมธอดตามลำดับนี้ car(), fourWheeler() และ vehicle() ผลลัพธ์จะเป็น −

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

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • กำหนดคลาสรถใหม่
    • กำหนดฟังก์ชันรถ()
      • print("ฉันเป็นพาหนะ")
  • กำหนดคลาสใหม่ FourWheeler ที่สืบทอดมาจากคลาส Vehicle.
    • กำหนดฟังก์ชัน fourWheeler()
      • print("ฉันมีสี่ล้อ")
  • กำหนดคลาสรถใหม่ที่สืบทอดมาจากคลาส FourWheeler
    • กำหนดฟังก์ชั่น car()
      • print("ฉันเป็นรถ")

ตัวอย่าง

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

#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