ধরা যাক তিনটি ক্লাস আছে: Vehicle, FourWheeler, এবং Car। Vehicle বেস ক্লাস, FourWheeler Vehicle থেকে ডেরাইভ্ড, এবং Car FourWheeler থেকে ডেরাইভ্ড। Vehicle-এ vehicle() মেথড আছে যা "I am a vehicle" প্রিন্ট করে। FourWheeler-এ fourWheeler() মেথড আছে যা "I have four wheels" প্রিন্ট করে। Car-এ car() মেথড আছে যা "I am a car" প্রিন্ট করে। মাল্টি-লেভেল ইনহেরিটেন্সের কারণে Car অবজেক্ট দিয়ে সব মেথড অ্যাক্সেস করা যায়।
যদি car(), fourWheeler(), vehicle() এই ক্রমে কল করা হয়, তবে আউটপুট হবে:
I am a car I have four wheels I am a vehicle
সমাধানের ধাপসমূহ
- Vehicle ক্লাস সংজ্ঞায়িত করুন যাতে public vehicle() মেথড থাকে
- FourWheeler ক্লাস Vehicle থেকে public ইনহেরিট করুন যাতে public fourWheeler() মেথড থাকে
- Car ক্লাস FourWheeler থেকে public ইনহেরিট করুন যাতে public car() মেথড থাকে
- main-এ 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