C ++ में इनहेरिटेंस कंस्ट्रक्टर क्या है

C Mem Inaheritensa Kanstraktara Kya Hai



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

इनहेरिटेंस के साथ-साथ C++ में कंस्ट्रक्टर भी आवश्यक हैं। ए निर्माता एक अद्वितीय सदस्य फ़ंक्शन है जो आपको ऑब्जेक्ट के गुणों को प्रारंभ करने की अनुमति देता है। एक इनहेरिटेंस कंस्ट्रक्टर एक कंस्ट्रक्टर है जिसका उपयोग बेस क्लास और व्युत्पन्न क्लास ऑब्जेक्ट्स दोनों को इनिशियलाइज़ करने के लिए किया जाता है जो व्युत्पन्न वर्ग को विरासत में मिला है। वंशानुक्रम निर्माणकर्ता विरासत में मिले आधार वर्ग के सदस्यों और व्युत्पन्न वर्ग के सदस्यों दोनों को आरंभ करने के लिए जिम्मेदार है। इसे प्राप्त करने के लिए, कंस्ट्रक्टर बेस क्लास के कंस्ट्रक्टर को आमंत्रित करता है, यह सुनिश्चित करता है कि व्युत्पन्न वर्ग के सभी सदस्यों को ठीक से इनिशियलाइज़ किया गया है, जिसमें बेस क्लास से विरासत में मिले सदस्य भी शामिल हैं।

बेस क्लास के कंस्ट्रक्टर को कॉल करके और आवश्यक पैरामीटर पास करके, वंशानुक्रम निर्माणकर्ता बेस क्लास के सदस्यों को इनिशियलाइज़ करता है। यह प्रयोग करके पूरा किया जाता है 'आधार वर्ग (तर्क)' कंस्ट्रक्टर में इनिशियलाइज़ेशन लिस्ट। विशेष रूप से व्युत्पन्न वर्ग के लिए आगे के निर्देश कंस्ट्रक्टर बॉडी में दिए गए हैं।







के लिए वाक्य रचना इनहेरिट सी ++ में एक वर्ग है:



कक्षा व्युत्पन्न वर्ग : accessSpecifier BaseClass {
// कक्षा के सदस्य
} ;

इस मामले में बन रहा नया वर्ग, 'व्युत्पन्न वर्ग', से विरासत में मिलेगा 'बेस क्लास'। विरासत में मिले सदस्यों तक पहुंच का स्तर 'द्वारा निर्दिष्ट किया गया है' एक्सेसस्पेसिफायर'। C++ तीन प्रकार के एक्सेस स्पेसिफायर का उपयोग करता है, अर्थात् 'सार्वजनिक निजी', और 'संरक्षित' . शब्द 'जनता' इंगित करता है कि व्युत्पन्न वर्ग के पास आधार वर्ग के सार्वजनिक सदस्यों तक पहुंच है। के अनुसार, व्युत्पन्न वर्ग की आधार वर्ग के सदस्यों तक कोई पहुँच नहीं है 'निजी' विनिर्देशक। व्युत्पन्न वर्ग के पास संरक्षित आधार वर्ग के सदस्यों तक पहुंच होती है, जो कि उनके बाल वर्गों द्वारा विरासत में प्राप्त किया जा सकता है 'संरक्षित' विनिर्देशक।



सी ++ में विरासत का उदाहरण

निम्नलिखित उदाहरण के कार्यान्वयन को दर्शाता है विरासत सी ++ में:





#शामिल
का उपयोग करते हुए नाम स्थान कक्षा ;

कक्षा जानवर {
जनता :
खालीपन खाना ( ) {
अदालत << 'मैं खा सकता हूं!' << endl ;
}
खालीपन नींद ( ) {
अदालत << 'मैं सो सकता हूं!' << endl ;
}
} ;
कक्षा बिल्ली : जनता जानवर {
जनता :
खालीपन मियांउ ( ) {
अदालत << 'मैं म्याऊ कर सकता हूँ!' << endl ;
}
} ;
int यहाँ मुख्य ( ) {
बिल्ली बिल्ली 1 ;
बिल्ली1। खाना ( ) ;
बिल्ली1। नींद ( ) ;
बिल्ली1। मियांउ ( ) ;

वापस करना 0 ;
}

दिया गया कोड दो वर्गों को परिभाषित करता है, 'जानवर' और 'बिल्ली' , कहाँ 'बिल्ली' से लिया गया है 'जानवर' . दोनों वर्गों के कुछ सदस्य कार्य हैं, जैसे 'खाओ और सो जाओ' , और 'मियांउ' . मुख्य कार्य वर्ग का एक वस्तु बनाता है 'बिल्ली' और कॉल करता है विरासत में मिला वर्ग से कार्य करता है 'जानवर' साथ ही वर्ग के विशिष्ट कार्य 'बिल्ली' , जो है 'मियांउ' . कार्यक्रम पाठ को कंसोल पर आउटपुट करता है, यह दर्शाता है कि बिल्ली खा सकती है, सो सकती है और म्याऊ कर सकती है।

उत्पादन



जब एक वर्ग व्युत्पन्न होता है, तो आधार वर्ग के सभी सदस्य चर और सदस्य कार्य व्युत्पन्न वर्ग में स्थानांतरित हो जाते हैं। विरासत में मिला डिराइव्ड क्लास में सदस्यों की एक्सेसिबिलिटी एक्सेस स्पेसियर द्वारा निर्धारित की जाती है। व्युत्पन्न वर्ग उन नई विशेषताओं को भी प्रतिस्थापित कर सकता है जो पहले से मौजूद हैं। यह बेस क्लास के तरीकों के लिए नए कार्यान्वयन जोड़ सकता है और नए सदस्य फ़ंक्शन और चर जोड़ सकता है।

यह याद रखना महत्वपूर्ण है कि वंशानुक्रम निर्माणकर्ता बेस क्लास के कन्स्ट्रक्टर को आवश्यक पैरामीटर के साथ स्पष्ट रूप से कॉल करने के लिए उपयोग किया जाना चाहिए यदि बेस क्लास में डिफ़ॉल्ट कन्स्ट्रक्टर है या यदि यह उपलब्ध नहीं है।

निष्कर्ष

की प्रबल विशेषता है विरासत सी ++ में कक्षाओं को दूसरों से विशेषताओं और कार्यों को विरासत में प्राप्त करके कोड का पुन: उपयोग करने की अनुमति देता है। C++ की एक उपयोगी विशेषता वंशानुक्रम निर्माणकर्ता व्युत्पन्न कक्षाओं को आधार वर्ग के गुणों, विधियों और डेटा सदस्यों को प्राप्त करने की अनुमति देता है। बेस क्लास कंस्ट्रक्टर्स के लिए इनिशियलाइज़ेशन लिस्ट को जोड़ने के साथ, इसे उसी सिंटैक्स का उपयोग मानक कंस्ट्रक्टर के रूप में परिभाषित किया गया है। C++ प्रोग्रामर कोड दोहराव को कम कर सकते हैं और कोड संरचना को बढ़ा सकते हैं वंशानुक्रम निर्माणकर्ता . ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में जटिल वर्ग पदानुक्रम बनाने के लिए, यह एक महत्वपूर्ण टूल है।