Introduction
Object Oriented Programming में inheritance का उपयोग code reuse और hierarchy बनाने के लिए किया जाता है। सामान्यतः एक class केवल एक base class से inherit करती है, लेकिन कुछ स्थितियों में हमें एक class को एक से अधिक base classes के features की आवश्यकता होती है।
ऐसी स्थिति में Multiple Inheritance का उपयोग किया जाता है, जिसमें एक derived class एक से अधिक base classes से properties और functions को inherit करती है। इससे program अधिक flexible और powerful बनता है।
Definition
Multiple Inheritance वह प्रक्रिया है जिसमें एक derived class, एक से अधिक base classes से data members और member functions को inherit करती है।
Syntax
class DerivedClass : accessSpecifier Base1, accessSpecifier Base2 {
// body
};
Example (Multiple Inheritance)
#include <iostream>
using namespace std;class A {
public:
void showA() {
cout << "Class A" << endl;
}
};
class B {
public:
void showB() {
cout << "Class B" << endl;
}
};
class C : public A, public B {
public:
void showC() {
cout << "Class C";
}
};int main() {
C obj;
obj.showA();
obj.showB();
obj.showC();
return 0;
}
Output:
Class A
Class B
Class C
Working को समझना
- Class
CनेAऔरBदोनों को inherit किया - इसलिए
Cके object को दोनों classes के functions access मिल गए - एक object से multiple classes की functionality प्राप्त हुई
Multiple Inheritance के लाभ
- Code reuse बढ़ता है
- Multiple features को combine किया जा सकता है
- Complex systems को represent करना आसान होता है
Diamond Problem (संक्षेप में)
जब दो base classes एक ही class से inherit होती हैं और derived class उन दोनों को inherit करती है, तब ambiguity (confusion) हो सकता है।
इसे Diamond Problem कहा जाता है।
Important Points
- एक class multiple base classes से inherit कर सकती है
- Access specifier हर base class के लिए अलग हो सकता है
- Ambiguity की समस्या हो सकती है
- Virtual inheritance से इसे solve किया जाता है
निष्कर्ष
Multiple Inheritance C++ का एक महत्वपूर्ण feature है जो एक class को कई classes की properties और functions को inherit करने की सुविधा देता है। यह flexibility और code reuse को बढ़ाता है, लेकिन इसे सावधानीपूर्वक उपयोग करना आवश्यक है।