हेल्लो दोस्तों आज के इस पोस्ट में आपको c++ inheritance in hindi के बारे में बताया गया है की क्या होता है कैसे काम करता है तो चलिए शुरू करते है।
C++ inheritance का परिचय
- object oriented programming का एक सबसे important feature यह है की आप एक class में create किये गए member function और डाटा members को दूसरी class में access करके प्रयोग कर सकते है object oriented programming का यह एक feature inheritance कहलाता है
- inheritance का मतलब विरासत में कुछ प्राप्त करना होता है मान लीजिये की आप कोई एक person है John,उसके पिताजी(mr. Max) के pass अछ्चा घर ,गाड़ी और व्यापर है तो ये सब john को विरासत के रूप में ही प्राप्त हुए है और इसके लिए john ने कोई काम नहीं किया है
- इसी प्रकार से आप एक class भी किसी दूसरी class से विरासत में डाटा members और function को प्राप्त कर सकते है इसे inherit(विरासत में प्राप्त करना) करना कहते है जिस class को inherit किया जाता है वह base class या parent class कहलाता है जो class inherit करती है उसे वह derived class या child class कहलाती है
- उपर दिए गए example के अनुसार john के पिताजी Mr. Max एक base या parent class है और john एक derived या child class तो आइये हम अब देखते है की आप किस प्रकार से एक class को inherit करके उसके डाटा को members और function का प्रयोग कर सकते है
deriving class
class में derive करने का general syntax आपको निचे दिया जा रहा है
class derived-class-name: access-specifier base-class-name { //derived data members & function };
सबसे पहले आप class keyword को डिफाइन किया जाता है की इसके बाद inherit करने वाली का नाम दिया जाता है इसके बाद आप colon(:) ऑपरेटर को लगाया जाता है इसके बाद access specifier को लगाया जाता है access specifiers inheritance की visibility बताते है इनके बारे में आपको आगे जानेंगे इसके बाद आप उस class का नाम को डिफाइन करते है जिसे आप inherit किया गया है जो की base class या parent class कहलाएगी इसके बाद आप child class के लिए ही डाटा member और member के function को डिफाइन करेंगे
एक child class base class के members को inherit करने के आलावा आप खुद के भी members को डिफाइन करती है base class के members को आपको दुबारा child class में डिक्लेअर या डिफाइन करने की आवश्यकता नहीं होती है इन्हे आप सीधा child class के object के द्वारा base class से ही access किया जाता है
तो आएये हम अब एक example के माध्यम से समझाने का प्रयास करते है मान लीजिये आपने Mr-Max नाम से के class को create की है
Class MrMax { Private: Int cash=10000000; Public: Void Nice&BigHome(void) { Cout<<”I have a beautiful nice home”<<endl; } Void ShinyCar(void) { Cout<<”u have beautiful expensive car”<<endl; } Void GrowingBussiness(void) { Cout<< I have good growing business”endl; } Void MushCash(void) { Cout<<”I have much cash:”<<cash<<endl; };
अब मान लीजिये की कोई दूसरी class है john जो इस class को inherit करना चाहती है तो ऐसे इस प्रकार किया जा सकता है
class John:public MrMax { private int age=20; public: void Personallnfo(void) { cout<<”hi , I am john and my age is”<<age<<endl; } };
एक बार inherit करने के बाद आप john class के द्वारा Mr-Max class के किसी भी public डाटा member और member के functions को inherit कर सकते है जिसका आपको इसका example निचे दिया जा रहा है
Int main() { John obj; Obj.Personallinfo(); Obj.Nice&BigHome(); Obj.ShinyCar(); Obj.GrowingBussiness(); Obj.MuchCash(); Return0; }
जैसे की आप देख सकते है john class के object के द्वारा Mr-Max class member function को कॉल किये गया है यहाँ पर ऐसे करना इसलिए possible होता है क्योकि john class ने object oriented programming का inheritance के feature का प्रयोग करके Mr-Max class को inherit किया जाता है इसे निचे आपको एक complete example के रूप में दिया जा रहा है
#include<iostream> Using namespace std; Class MrMax { Prvate: Int cash=1000000; Public: Void Nice&BigHome(void) { Cout<<”I have a beautiful nice home”<<endl; } Void ShinyCar(void) { Cout<<”I have beautiful exprensive car”<<endl; } Void GrowingBussiness(void) { Cout<<I have good growing bussiness”<<endl; } Void MuchCash(void) { Cout<<”I have much cash:”<<cash<<endl; } }; Class John:public MrMax { Private: Int age=20; Public: Void personallinfo(void) { Cout<<”hi , I am john and my age is”<<age<<endl; } }; Int main() { John obj; Obj.personallinfo(); Obj.Nice&BigHome(); Obj.ShinyCar(); Obj.GrowingBussiness(); Obj.MuchCash(); Return0 ; }
उपर दिए गए program में आपको निचे दिया गया आउटपुट को generate करता है
Hi, I am john and my age is 20 I have a beautiful nice home I have beautiful expensive car I have good growing business I have much cash:1000000
visibility modes
जब भी आप किसी class को derive करते है तो आप base class से पहले आप access specifier को डिफाइन किया जाता है जैसे की उपर दिए गए example में Mr-Max class को inherit करते समय ही public को access specifier को डिफाइन किया गया है
ये access specifier visibility मोड को डिफाइन करते है इस प्रकार से inheritance 3 visibility modes में परफॉर्म किया जा सकता है तो इसके बारे में आपको निचे details से दिया जा रहा है
public mode
ये सबसे अधिक प्रयोग किये जाने वाला mode है इस mode में base में class के सभी public members को derived class में public members बन जाते है और सभी protected members को derived class में protected members बन जाते है
protected mode
इस mode में base class के सभी public और protected members के derived class में protected members बन जाते है इस mode को enable करने के लिए ही आप class को inherit करते समय base class से पहले protected को access specifier लगाते है
private mode
इस mode में base class के सभी public और protected members को derived class में private members बन जाते है class को inherit करते समय यदि आप कोई भी access specifier नहीं डिफाइन करते हिया तो आप वह by default private visibility mode होता है
types of inheritance
c++ में आप 5 प्रकार से inheritance को implement कर सकते है इनके बारे में आपको निचे details से बताया जा रहा है
single inheritance
इस तरह के inheritance में एक base class के एक derived class को inherit करती है पहले उपर explain किया गया example को इसी category का inheritance होता है
multiple inheritance
इस तरह के inheritance में एक class के एक से ज्यादा base क्लासेज को inherit करती है example के लिए यदि कोई class A है यह class D और E क्लासेज को inherit करती है तो ऐसी सिचुएशन में ये multiple inheritance हो जाएगी
multilevel inheritance
इस तरह के inheritance में inherit करने वाली class को भी inherit कर लिया जाता है जिसके लिए example के लिए कोई class A है इस class को कोई दूसरी class B को inherit करती है और B class को कोई तीसरी class C को inherit करती है तो ऐसी सिचुएशन में ये एक multilevel inheritance हो जाएगी यानी कोई derived class को भी inherit कर लिया जाता है
hierarchical inheritance
इस तरह के inheritance में एक class को एक से अधिक क्लासेज को inherit करती है example के लिए यदि कोई class A है इस class को B,C और D class को inherit करती है तो ऐसी सिचुएशन में ये hierarchical inheritance माना जायेगा
hybrid inheritance
इस तरह का inheritance को hierachical और multilevel inheritance का combination होता है example के लिए आप कोई दो class A और B जिन्हें एक class C को inherit करती है इस C class को कोई और दो D और E क्लासेज को inherit करती है तो ऐसी सिचुएशन में यह hybrid inheritance होगा
reference-https://www.geeksforgeeks.org/inheritance-in-c/
निवेदन-अगर आपको यह आर्टिकल(c++ inheritance in hindi) अच्छा लगा हो तो आप इस पोस्ट को अपने दोस्तों के साथ जरुर शेयर(c++ inheritance in hindi) करे और आपको जिस टॉपिक(c++ inheritance in hindi) पर आपको पढना या नोट्स चाहिए तो हमें जरुर कमेंट करे आपका कमेंट्स हमारे लिए बहु मूल्य है धन्यवाद