सी ++ कक्षाओं के निजी और संरक्षित सदस्यों के बीच क्या अंतर है

Si Kaksa Om Ke Niji Aura Sanraksita Sadasyom Ke Bica Kya Antara Hai



C++ एक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग (OOP) लैंग्वेज है जो डेटा और फंक्शन्स को एक सिंगल एंटिटी में एनकैप्सुलेट करने के लिए एक मैकेनिज्म प्रदान करती है जिसे क्लास कहा जाता है। वर्ग की आवश्यक विशेषताओं में से एक इसके सदस्यों के लिए पहुँच स्तर निर्दिष्ट करने की क्षमता है। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग में, पहुँच विनिर्देशक वर्ग के क्षेत्रों और विधियों की दृश्यता और पहुंच को नियंत्रित करने के लिए उपयोग किया जाता है। संरक्षित , जनता , और निजी पहुँच स्तर C++ में तीन मूल प्रकार के पहुँच स्तर हैं।

इस राइटअप में, हम दो मुख्य के बीच के अंतर पर चर्चा करेंगे पहुँच विनिर्देशक एस, निजी और संरक्षित सी ++ वर्ग के सदस्य।

निजी पहुँच विनिर्देशक

निजी सदस्य कीवर्ड का उपयोग करके घोषित किया जाता है ' निजी '। निजी पहुँच विनिर्देशक कक्षा के सदस्यों तक पहुँच को केवल कक्षा तक ही सीमित करता है। कक्षा के बाहर का कोड किसी निजी सदस्य को एक्सेस या परिवर्तित नहीं कर सकता है। इसका मतलब है कि केवल कक्षा में घोषित तरीके ही एक्सेस और ऑपरेट कर सकते हैं निजी सदस्य , व्युत्पन्न कक्षाएं भी नहीं पहुंच सकती हैं निजी सदस्य . का एक सामान्य प्रयोग है निजी सदस्य एक वर्ग के सही संचालन को सुनिश्चित करना है। निजी सदस्य वर्ग डेटा को समाहित करने और वर्ग के उपयोगकर्ताओं को अमूर्त स्तर प्रदान करने के लिए उपयोग किया जाता है।







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

कक्षा खिलाड़ी {

निजी :
स्ट्रिंग नाम ;
int यहाँ आयु ;

जनता :
खालीपन getPlayer ( )
{
अदालत << 'नाम दर्ज करें: ' ;
खाना >> नाम ;
अदालत << 'आयु दर्ज करें:' ;
खाना >> आयु ;
}
खालीपन शोप्लेयर ( )
{
अदालत << 'नाम: ' << नाम << endl ;
अदालत << 'आयु: ' << आयु << endl ;
}
} ;

int यहाँ मुख्य ( )
{
खिलाड़ी पीएल ;
कृपया। getPlayer ( ) ;
कृपया। शोप्लेयर ( ) ;

वापस करना 0 ;
}

उपरोक्त कोड में, हम सार्वजनिक सदस्य विधियों का उपयोग करते हैं गेटप्लेयर () और शोप्लेयर () दो तक पहुँचने के लिए निजी सदस्यों' नाम और आयु . गेटप्लेयर () फ़ंक्शन उपयोगकर्ताओं से इनपुट प्राप्त करता है और इसे स्क्रीन पर प्रदर्शित करता है शोप्लेयर () समारोह।



उत्पादन







संरक्षित पहुँच विनिर्देशक

संरक्षित सदस्य एक वर्ग की व्युत्पन्न कक्षाओं और वर्ग के सदस्य कार्यों दोनों के द्वारा पहुँचा जा सकता है। संरक्षित सदस्य बाहरी दुनिया के कार्यान्वयन विवरण को उजागर किए बिना व्युत्पन्न कक्षाओं तक पहुंच का स्तर प्रदान करने के लिए उपयोग किया जाता है। संरक्षित सदस्य कीवर्ड का उपयोग करके घोषित किया जाता है ' संरक्षित ' और यह बृहदान्त्र (:) चरित्र। संरक्षित सदस्य एक वर्ग को उसकी अखंडता से समझौता किए बिना विस्तारित और संशोधित करने की अनुमति दें। एक व्युत्पन्न वर्ग उपयोग कर सकता है संरक्षित सदस्य आधार वर्ग के व्यवहार को परिष्कृत या अनुकूलित करने के लिए।

यहाँ एक वर्ग का उदाहरण दिया गया है संरक्षित सदस्य :



#शामिल
नेमस्पेस एसटीडी का उपयोग करना;

वर्ग खिलाड़ी {
निजी:
स्ट्रिंग नाम;
अंतर आयु;

संरक्षित:
इंट लक्ष्य;

जनता:
शून्य getPlayer ( )
{
अदालत <> नाम;
अदालत <> आयु;
}
शून्य शोप्लेयर ( )
{
अदालत << 'नाम: ' << नाम << एंडल;
अदालत << 'आयु: ' << आयु << एंडल;
}
} ;

क्लास प्लेयर 1: पब्लिक प्लेयर {

निजी:
स्ट्रिंग देश;

जनता:
शून्य सेट_गोल्स ( इंट जी )
{
लक्ष्य = जी;
}
शून्य getPlayer1 ( )
{
getPlayer ( ) ;
अदालत <> देश;
}
शून्य शोप्लेयर 1 ( )
{
अदालत << 'लक्ष्य: ' << लक्ष्य << एंडल;
शोप्लेयर ( ) ;
अदालत << 'देश: ' << देश << एंडल;
}
} ;

मुख्य प्रवेश बिंदु ( )
{
खिलाड़ी1 पीएल;
pl.set_goals ( 101 ) ;
pl.getPlayer1 ( ) ;
pl.showPlayer1 ( ) ;

वापस करना 0 ;
}

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

उत्पादन

सी ++ कक्षाओं के निजी और संरक्षित सदस्यों के बीच अंतर

यहाँ कुछ प्रमुख अंतरों को सूचीबद्ध किया गया है निजी और संरक्षित सी ++ कक्षाओं के सदस्य।

1: कार्यक्षेत्र और कार्यक्षमता

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

2: पहुंच का स्तर

के बीच मुख्य अंतर है निजी और संरक्षित सदस्य उनके द्वारा प्रदान की जाने वाली पहुँच का स्तर है। संरक्षित सदस्यों को वर्ग के व्युत्पन्न वर्गों और सदस्य कार्यों दोनों द्वारा पहुँचा जा सकता है, लेकिन निजी सदस्यों को केवल वर्ग के सदस्य कार्यों द्वारा ही प्राप्त किया जा सकता है।

3: कक्षा का एनकैप्सुलेशन

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

अंतिम विचार

निजी और संरक्षित सदस्य C++ वर्ग में दो आवश्यक पहुँच स्तर हैं। निजी एक्सेस स्पेसियर क्लास के सदस्यों को सभी बाहरी उपयोगकर्ताओं के लिए दुर्गम बनाता है, और इसका उपयोग जानकारी रखने के लिए किया जाता है निजी कक्षा के भीतर। इसके विपरीत, ए संरक्षित एक्सेस स्पेसियर केवल व्युत्पन्न कक्षाओं द्वारा वर्ग के सदस्यों तक पहुंच की अनुमति देता है, इसका उपयोग बेस क्लास की कार्यक्षमता प्रदान करने के लिए किया जाता है और बेस क्लास के व्यवहार को बदले बिना संशोधन की अनुमति देता है। कक्षा के सदस्यों का पहुँच स्तर वर्ग के एनकैप्सुलेशन को बनाए रखने और कक्षा के उपयोगकर्ताओं को पहुँच का स्तर प्रदान करने में महत्वपूर्ण भूमिका निभाता है।