Base class and derived class c++ In Hindi
C++ ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग OOPS लैंग्वेज में इनहेरिटेंस एक स्पेशल यूनिक स्पेशल मल्टीप्ल बेस क्लास से डिराइव्ड क्लास एक्सप्लनेशन कॉन्सेप्ट है. जो किसी यूजर डिफाइन एक सबक्लास (डिराइव्ड क्लास) को अन्य दूसरी मैन रुट क्लास (बेस क्लास) से उसकी डिफ़ॉल्ट प्रॉपर्टीज़ और बिहेवियर (जैसे, यूजर डिफाइन क्लास के एट्रिब्यूट्स और क्लास मेथड्स) फंक्शन और फीचर्स को अडॉप्ट या इनहेरिट करने की परमिशन प्रोवाइड करता है। इनहेरिटेंस कॉन्सेप्ट C++ यूजर को मौजूदा प्रोग्राम सोर्स कोड को मल्टीप्ल टाइम रीयूज़ करने में हेल्प करता है, और बेस क्लास से डिराइव्ड क्लास के बीच एक नेचुरल हायरार्की को क्रिएट करता है। जिसमे यूजर डिफाइन रुट या बेस क्लास सामान्य रूप से एक जनरल रुट मैन क्लास कॉन्सेप्ट को रिप्रेसेंट करता है. जबकि डिराइव्ड सबक्लास रुट मैन क्लास कॉन्सेप्ट को अधिक एक्सटेंड कर डेमोंस्ट्रेट करता है।

Base class, derived class, and special features of inheritance.
- Base Class – यह C++ प्रोग्राम में यूजर डिफाइन मैन रुट या सुपर बेस क्लास होती है. जो रुट क्लास की सामान्य प्रॉपर्टीज़ और बिहेवियर (क्लास डिक्लेअर पैरामीटर मेंबर्स और फंक्शन मेथड्स) को रिप्रेजेंट करता है।
- Derived Class – यह C++ प्रोग्राम में यूजर डिफाइन डिराइव्ड या सबक्लास प्रॉपर्टीज़ और बिहेवियर है. जो बेस या मैन रुट क्लास की डिफ़ॉल्ट फंक्शन और मेथड से इनहेरिट होती है, और अपनी प्रॉपर्टीज़ या बिहेवियर को इसमें ऐड कर सकती है, या जरूरत पड़ने पर बेस क्लास मेथड्स को ओवरराइड कर सकती है।
- Inheritance – C++ प्रोग्राम में इनहेरिटेंस एक कांसेप्ट या मैकेनिज़्म है. जिससे डिराइव्ड क्लास को बेस क्लास के पब्लिक और प्रोटेक्टेड क्लास मेंबर्स डाटा टाइप पैरामीटर का एक्सेस और कण्ट्रोल प्रोवाइड किया जाता है।
Syntax of BaseClass and DerivedClass in inheritance.
class BaseClass {
//User-defined variables or members of the base class
};
class DerivedClass : public BaseClass {
//User-defined members of the derived class parameter
};
In the above BaseClass and DerivedClass inheritance syntax,
- इस सिंटेक्स में बेस क्लास एक यूजर डिफाइन रुट या सुपर क्लास होती है।
- वैसे ही DerivedClass एक डिराइव्ड क्लास यूजर डिफाइन सबक्लास होती है।
- यहाँ डिफाइन क्लास में पब्लिक का मतलब है कि यूजर डिफाइन रुट या BaseClass के पब्लिक क्लास डाटा टाइप मेंबर वेरिएबल DerivedClass या सबक्लास में एक्सेस और कण्ट्रोल किए जा सकते हैं। यह प्रोटेक्टेड या प्राइवेट भी हो सकता है।
Types of Inheritance in C++ Programming.
- Single inheritance – C++ प्रोग्राम में सिंगल इनहेरिटेंस एक सिंगल रुट या बेस क्लास से डिराइव्ड में एक्सटेंड या डिफाइन होती है।
- Multiple inheritance – C++ प्रोग्राम में मल्टीप्ल इनहेरिटेंस एक क्लास में एक से ज़्यादा बेस या सुपर क्लास से डिराइव्ड और कनेक्टेड होती है।
- Multilevel inheritance – C++ प्रोग्राम में मल्टीलेवल इनहेरिटेंस एक क्लास अन्य दूसरी क्लास से डिराइव्ड होती है. जो इसके बदले में तीसरी क्लास से डिराइव्ड या कनेक्टेड होती है।
- Hierarchical inheritance – C++ प्रोग्राम में हायरार्की इनहेरिटेंस एक सिंगल बेस रुट क्लास से कई क्लास डिराइव्ड से कनेक्टेड होती हैं।
- Hybrid inheritance – C++ प्रोग्राम में हाइब्रिड इनहेरिटेंस दो या ज़्यादा तरह के क्लास इनहेरिटेंस का एक यूनिक कॉम्बिनेशन होती है।
Example of single inheritance in a C++ program.
तो चलिए C++ प्रोग्राम में एक सिंगल इनहेरिटेंस का एक्साम्प्ल देखते है, जिसमे एक सिंगल इनहेरिटेंस को रिप्रेजेंट किया गया है. जिसमे एक डिराइव्ड क्लास एक बेस रुट क्लास से इनहेरिट किया गया हो.
#include <iostream>
#include <string>
class Employee { // here we define a employee name root or Base class
public:
std::string emp_name;
Employee (std::string employeeName) : emp_name (employeeName) {}
void work() {
std::cout << emp_name << ” Employee is working.” << std::endl;
}
void notwork() {
std::cout << emp_name << ” Employee is not working.” << std::endl;
}
};
class Person : public Employee { // here we Derived person class (inherits from Employee base class)
public:
Person(std::string Personemp_name) : Employee (Personemp_name) {} // here we use Constructor initializes the base class
void leave() {
std::cout << emp_name << ” Employee is on leave.” << std::endl;
}
};
int main() {
Person testPerson(“Siddhi Deora”);
testPerson.work(); // here it Inherited from Employee base class properties
testPerson.notwork(); // here it Inherited from Employee base class properties
testPerson.leave(); // here it Defined in Person derived class
return 0;
}
Explanation of single inheritance in C++.
Base class (Employee).
- यहाँ इस एक्साम्प्ल में Employee बेस क्लास में एक emp_name क्लास मेंबर वेरिएबल एट्रिब्यूट और दो क्लास मेथड (work() और notwork()) डिफाइन किये गए हैं।
- जो बेसक्लास में Employee के नाम का एक कंस्ट्रक्टर emp_name एट्रिब्यूट को इनिशियलाइज़ करता है।
Derived class (Person).
- Person डिराइव्ड क्लास, Employee बेस क्लास से public Employee का यूज़ करके इनहेरिट करता है।
- Person क्लास में इनहेरिट किए गए क्लास मेथड जिसमे (work() और notwork()) के अलावा अपना एक कस्टम खुद का एक मेथड leave() भी क्रिएटेड होता है।
- Person डिराइव्ड क्लास के कंस्ट्रक्टर में, हम Employee(Personemp_name) इनिशियलाइज़र लिस्ट का यूज़ करके मौजूदा क्लास में Employee के कंस्ट्रक्टर को कॉल करते हैं।
Usage in main().
- हम एक Person डिराइव्ड क्लास के ऑब्जेक्ट के रूप में testPerson को क्रिएट करते हैं, और work(), notwork(), और leave() क्लास मेथड को इसमें कॉल करते हैं। जिसमे work() और notwork() मेथड Employee बेस क्लास से इनहेरिट किए गए क्लास प्रॉपर्टीज हैं. जबकि leave() Person क्लास के लिए खास मेंबर या प्रॉपर्टीज है।

