मान लीजिए कि हमारे पास तीन वर्ग वाहन, फोरव्हीलर और कार हैं। क्लास व्हीकल बेस क्लास है, क्लास फोरव्हीलर इससे लिया गया है और क्लास कार क्लास फोरव्हीलर से ली गई है। क्लास व्हीकल में एक विधि 'वाहन' होती है जो 'मैं एक वाहन हूँ' प्रिंट करती है, क्लास फोरव्हीलर में एक विधि 'फोरव्हीलर' होती है जो 'मेरे पास चार पहिए' प्रिंट करती है, और क्लास कार में एक विधि 'कार' होती है जो 'मैं एक कार हूँ' प्रिंट करती है। '। तो, चूंकि यह एक बहु-स्तरीय विरासत है; हम क्लास कार के ऑब्जेक्ट से अन्य सभी क्लास मेथड तक पहुंच प्राप्त कर सकते हैं। हम कार ऑब्जेक्ट से सभी विधियों को लागू करते हैं और विधियों के संबंधित आउटपुट प्रिंट करते हैं।
इसलिए, यदि हम इस क्रम में कार (), फोरव्हीलर (), और वाहन () में विधियों को लागू करते हैं, तो आउटपुट होगा -
I am a car I have four wheels I am a vehicle
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
- एक नए वर्ग के वाहन को परिभाषित करें।
- एक फ़ंक्शन वाहन को परिभाषित करें ()
- प्रिंट ("मैं एक वाहन हूं")
- एक फ़ंक्शन वाहन को परिभाषित करें ()
- वाहन वर्ग से विरासत में मिली एक नई श्रेणी फोरव्हीलर को परिभाषित करें।
- एक फंक्शन फोरव्हीलर () को परिभाषित करें
- प्रिंट ("मेरे पास चार पहिए हैं")
- एक फंक्शन फोरव्हीलर () को परिभाषित करें
- एक नई श्रेणी की कार परिभाषित करें जो फोरव्हीलर वर्ग से विरासत में मिली है।
- एक फ़ंक्शन कार परिभाषित करें ()
- प्रिंट ("मैं एक कार हूं")
- एक फ़ंक्शन कार परिभाषित करें ()
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#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