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

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


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

एक आरेख जो एकाधिक वंशानुक्रम प्रदर्शित करता है, नीचे दिया गया है -

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

C++ में मल्टीपल इनहेरिटेंस को लागू करने का प्रोग्राम इस प्रकार दिया गया है -

उदाहरण

#include <iostream>
using namespace std;

class A {
   public:
   int a = 5;
   A() {
      cout << "Constructor for class A" << endl;
   }
};
class B {
   public:
   int b = 10;
   B() {
      cout << "Constructor for class B" << endl;
   }
};
class C: public A, public B {
   public:
   int c = 20;
   C() {
      cout << "Constructor for class C" << endl;
      cout<<"Class C inherits from class A and class B" << endl;
   }
};
int main() {
   C obj;
   cout<<"a = "<< obj.a <<endl;
   cout<<"b = "<< obj.b <<endl;
   cout<<"c = "<< obj.c <<endl;
   return 0;
}

आउटपुट

उपरोक्त कार्यक्रम का आउटपुट इस प्रकार दिया गया है -

Constructor for class A
Constructor for class B
Constructor for class C
Class C inherits from class A and class B
a = 5
b = 10
c = 20

उपरोक्त कार्यक्रम में, कक्षा ए और बी को परिभाषित किया गया है। यह नीचे दिया गया है -

class A {
   public:
   int a = 5;
   A() {
      cout << "Constructor for class A" << endl;
   }
};
class B {
   public:
   int b = 10;
   B() {
      cout << "Constructor for class B" < endl;
   }
};

क्लास सी दोनों क्लास ए और बी से विरासत में मिला है। यह मल्टीपल इनहेरिटेंस का एक उदाहरण है। कक्षा सी की परिभाषा नीचे दिखाई गई है -

class C: public A, public B {
   public:
   int c = 20;
   C() {
      cout << "Constructor for class C" << endl;
      cout<<"Class C inherits from class A and class B" << endl;
   }
};

मुख्य () फ़ंक्शन में, कक्षा C के ऑब्जेक्ट obj को परिभाषित किया गया है। कक्षा ए, बी और सी के निर्माणकर्ताओं को स्वचालित रूप से बुलाया जाता है और उनकी सामग्री प्रदर्शित होती है। फिर a, b और c के मान मुद्रित होते हैं। ये क्रमशः ए, बी और सी वर्ग के डेटा सदस्य हैं। इसके लिए कोड स्निपेट इस प्रकार है -

C obj;
cout<<"a = "<< obj.a <<endl;
cout<<"b = "<< obj.b <<endl;
cout<<"c = "<< obj.c <<endl;

  1. C++ में नेस्टेड क्लासेस

    एक नेस्टेड क्लास एक ऐसा वर्ग है जिसे किसी अन्य वर्ग में घोषित किया जाता है। नेस्टेड वर्ग भी संलग्न वर्ग का एक सदस्य चर है और अन्य सदस्यों के समान पहुंच अधिकार रखता है। हालांकि, संलग्न वर्ग के सदस्य कार्यों की नेस्टेड वर्ग के सदस्यों तक कोई विशेष पहुंच नहीं है। एक प्रोग्राम जो C++ में नेस्टेड कक्षाओ

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

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

  1. सी # में विरासत क्या है?

    वंशानुक्रम के माध्यम से, आप एक वर्ग को किसी अन्य वर्ग के संदर्भ में परिभाषित कर सकते हैं, जिससे एप्लिकेशन बनाना और बनाए रखना आसान हो जाता है। यह कोड कार्यक्षमता का पुन:उपयोग करने और कार्यान्वयन समय को गति देने का अवसर भी प्रदान करता है। वंशानुक्रम आधार वर्ग के साथ-साथ व्युत्पन्न वर्ग की अवधारणा पर