Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

다단계 상속을 보여주는 C++ 프로그램

<시간/>

Vehicle, FourWheeler 및 Car의 세 가지 클래스가 있다고 가정합니다. Vehicle 클래스는 기본 클래스이고 FourWheeler 클래스는 이 클래스에서 파생되며 Car 클래스는 FourWheeler 클래스에서 파생됩니다. Vehicle 클래스에는 'I am a vehicle'을 출력하는 'vehicle' 메소드가 있고, 클래스 FourWheeler에는 'I have four wheels'를 출력하는 'fourWheeler' 메소드가 있으며, 클래스 Car에는 'I am a car'를 출력하는 'car' 메소드가 있습니다. '. 따라서 이것은 다단계 상속이므로; Car 클래스의 객체에서 다른 모든 클래스 메서드에 액세스할 수 있습니다. Car 개체에서 모든 메서드를 호출하고 해당 메서드의 출력을 인쇄합니다.

따라서 car(), fourWheeler() 및 vehicle()의 순서로 메서드를 호출하면 출력은 -

가 됩니다.
I am a car
I have four wheels
I am a vehicle

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • 새 클래스 Vehicle을 정의합니다.
    • 함수 정의 차량()
      • print("나는 차량입니다")
  • Vehicle 클래스에서 상속한 새 클래스 FourWheeler를 정의합니다.
    • 함수 정의 fourWheeler()
      • print("나는 4개의 바퀴가 있습니다.")
  • FourWheeler 클래스에서 상속된 새 클래스 Car를 정의합니다.
    • 함수 정의 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