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

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

मान लीजिए कि हमारे पास तीन वर्ग वाहन, फोरव्हीलर और कार हैं। क्लास व्हीकल बेस क्लास है, क्लास फोरव्हीलर इससे लिया गया है और क्लास कार क्लास फोरव्हीलर से ली गई है। क्लास व्हीकल में एक विधि 'वाहन' होती है जो 'मैं एक वाहन हूँ' प्रिंट करती है, क्लास फोरव्हीलर में एक विधि 'फोरव्हीलर' होती है जो 'मेरे पास चार पहिए' प्रिंट करती है, और क्लास कार में एक विधि 'कार' होती है जो 'मैं एक कार हूँ' प्रिंट करती है। '। तो, चूंकि यह एक बहु-स्तरीय विरासत है; हम क्लास कार के ऑब्जेक्ट से अन्य सभी क्लास मेथड तक पहुंच प्राप्त कर सकते हैं। हम कार ऑब्जेक्ट से सभी विधियों को लागू करते हैं और विधियों के संबंधित आउटपुट प्रिंट करते हैं।

इसलिए, यदि हम इस क्रम में कार (), फोरव्हीलर (), और वाहन () में विधियों को लागू करते हैं, तो आउटपुट होगा -

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

  1. C++ में निजी, सार्वजनिक और संरक्षित विरासत के बीच अंतर

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

  1. C++ में एकाधिक वंशानुक्रम

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

  1. सी ++ में स्थानीय कक्षा

    किसी फ़ंक्शन के अंदर घोषित एक वर्ग को C++ में स्थानीय वर्ग के रूप में जाना जाता है क्योंकि यह उस फ़ंक्शन के लिए स्थानीय होता है। स्थानीय वर्ग का एक उदाहरण इस प्रकार दिया गया है। #include<iostream> using namespace std; void func() {    class LocalClass {    }; } int main()