Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में बहु-स्तरीय विरासत प्रदर्शित करने का प्रोग्राम


मान लीजिए हमारे पास तीन क्लास हैं: Vehicle, FourWheeler, और Car। Vehicle बेस क्लास है, FourWheeler इससे व्युत्पन्न है, और Car, FourWheeler से व्युत्पन्न है। Vehicle क्लास में 'vehicle' विधि है जो 'I am a vehicle' प्रिंट करती है, FourWheeler में 'fourWheeler' विधि है जो 'I have four wheels' प्रिंट करती है, और Car में 'car' विधि है जो 'I am a car' प्रिंट करती है। चूंकि यह बहु-स्तरीय विरासत है, हम Car ऑब्जेक्ट से अन्य सभी क्लास की विधियों तक पहुंच सकते हैं। हम Car ऑब्जेक्ट से सभी विधियों को कॉल करते हैं और संबंधित आउटपुट प्रिंट करते हैं।

यदि हम विधियों को इस क्रम में कॉल करते हैं: car(), fourWheeler(), vehicle(), तो आउटपुट होगा:

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

समाधान दृष्टिकोण

इस समस्या को हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • Vehicle क्लास परिभाषित करें:
    • vehicle() फंक्शन परिभाषित करें
      • "I am a vehicle" प्रिंट करें
  • FourWheeler क्लास परिभाषित करें जो Vehicle से विरासत में मिली है:
    • fourWheeler() फंक्शन परिभाषित करें
      • "I have four wheels" प्रिंट करें
  • Car क्लास परिभाषित करें जो FourWheeler से विरासत में मिली है:
    • car() फंक्शन परिभाषित करें
      • "I am a 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
  1. - C++ में प्राइवेट, पब्लिक और प्रोटेक्टेड इनहेरिटेंस में अंतर

    डेटा हाइडिंग ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की महत्वपूर्ण विशेषताओं में से एक है जो प्रोग्राम के फंक्शन को क्लास प्रकार के आंतरिक प्रतिनिधित्व को सीधे एक्सेस करने से रोकती है। क्लास सदस्यों तक पहुंच प्रतिबंध को क्लास बॉडी के भीतर लेबल किए गए एक्सेस मॉडिफायर: पब्लिक, प्राइवेट और प्रोटेक्टेड सेक्शन द्

  1. C++ में मल्टीपल इनहेरिटेंस C++ में मल्टीपल इनहेरिटेंस

    मल्टीपल इनहेरिटेंस तब होता है जब कोई क्लास एक से अधिक बेस क्लास से इनहेरिट करती है। इसलिए क्लास मल्टीपल इनहेरिटेंस का उपयोग करके कई बेस क्लासेज से सुविधाएं इनहेरिट कर सकती है। यह C++ जैसी ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग भाषाओं की एक महत्वपूर्ण विशेषता है। मल्टीपल इनहेरिटेंस को प्रदर्शित करने वाला एक

  1. - C++ में लोकल क्लास (Local Class)

    लोकल क्लास क्या है? एक फ़ंक्शन के अंदर घोषित क्लास को लोकल क्लास कहते हैं क्योंकि यह उस फ़ंक्शन के लिए स्थानीय (local) होती है। बेसिक उदाहरण #include <iostream> using namespace std; void func() { class LocalClass { }; } int main() { return 0; } नियम और प्रतिबंध लोकल क्लास का नाम