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()
- FourWheeler 클래스에서 상속된 새 클래스 Car를 정의합니다.
- 함수 정의 car()
- print("나는 자동차입니다")
- 함수 정의 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