क्या करता है :: C++ में करें?

Kya Karata Hai C Mem Karem



C++ एक बहुमुखी प्रोग्रामिंग भाषा है जो डेवलपर्स को कार्यक्षमता की एक विस्तृत श्रृंखला प्रदान करती है। C++ में सबसे अधिक उपयोग की जाने वाली सुविधाओं में से एक है स्कोप रिज़ॉल्यूशन ऑपरेटर , के नाम से भी जाना जाता है डबल कोलन (::) . भाषा का एक महत्वपूर्ण हिस्सा होने के बावजूद, डबल कोलन ऑपरेटर कई डेवलपर्स के लिए भ्रमित करने वाला हो सकता है, खासकर उनके लिए जो इसके लिए नए हैं।

इस गाइड में, हम देखेंगे डबल कोलन (::) ऑपरेटर सी ++ में और यह विभिन्न परिदृश्यों में कैसे काम करता है।

क्या करता है :: C++ में करें?

सी ++ में, गुंजाइश संकल्प ऑपरेटर (::) विभिन्न कार्यक्षेत्र स्तरों पर मौजूद चर के नामों को पुनः प्राप्त करने के लिए उपयोग किया जाता है। प्रोग्रामिंग में दायरा उस संदर्भ को संदर्भित करता है जहां चर और कार्यों का उपयोग किया जा सकता है।







सी ++ में विभिन्न मामलों में :: का उपयोग

सी ++ में, स्कोप रिज़ॉल्यूशन ऑपरेटर (::) जिस संदर्भ में इसका उपयोग किया जाता है, उसके आधार पर इसके विभिन्न उपयोग हैं। इस ऑपरेटर के कुछ उल्लेखनीय उपयोग निम्नलिखित हैं:



1: एक भिन्न नामस्थान में एक चर या फ़ंक्शन तक पहुँचें

नाम स्थान नामकरण विरोधों से बचने के लिए सी ++ में संबंधित कार्यों, वर्गों और चरों को समूहित करने के लिए उपयोग किया जाता है। जब आप एक चर या फ़ंक्शन को a के भीतर परिभाषित करते हैं नाम स्थान , वेरिएबल या फ़ंक्शन का नाम केवल उसी के भीतर दिखाई देता है नाम स्थान .



सी ++ में, आप इसका उपयोग कर सकते हैं स्कोप रिज़ॉल्यूशन ऑपरेटर (::) के साथ नाम स्थान किसी भिन्न नामस्थान में परिभाषित चर या फ़ंक्शन तक पहुँचने के लिए नाम और चर या फ़ंक्शन नाम। यह आपको चर या फ़ंक्शन को a से एक्सेस करने की अनुमति देता है नाम स्थान एक के अलावा जिसमें इसे बनाया गया था।





उपरोक्त मामले को समझने के लिए, निम्नलिखित कोड को एक उदाहरण के रूप में देखें:

#शामिल

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

नामस्थान गणित {

कॉन्स्ट दोहरा अनुकरणीय = 3.14159 ;

दोहरा वर्ग ( दोहरा एक्स ) {

वापस करना एक्स * एक्स ;

}

}

int यहाँ मुख्य ( ) {

अदालत << 'पीआई का मान है:' << गणित :: अनुकरणीय << endl ;

अदालत << '5 का वर्ग है:' << गणित :: वर्ग ( 5 ) << endl ;

वापस करना 0 ;

}

उपरोक्त कोड का उपयोग करता है गणित नाम स्थान तक पहुँचने के लिए 'पीआई' स्थिर और 'वर्ग' का उपयोग करके कार्य करें स्कोप रिज़ॉल्यूशन ऑपरेटर '::' . यह तब मूल्यों को कंसोल पर प्रिंट करता है।



उत्पादन

2: प्रोग्राम में ग्लोबल वेरिएबल एक्सेस करें

जब कार्यक्रम में स्थानीय और वैश्विक चर का एक ही नाम मौजूद होता है, तो स्थानीय चर वैश्विक को छुपा सकता है। ऐसी स्थितियों में, आप का उपयोग कर सकते हैं स्कोप रिज़ॉल्यूशन ऑपरेटर (::) वैश्विक चर तक पहुँचने के लिए। यह ऑपरेटर हमें इसके दायरे के आधार पर वैश्विक चर को स्पष्ट रूप से संदर्भित करने की अनुमति देता है।

उदाहरण के लिए, नीचे दिए गए कोड में, हमने वैश्विक चर का उल्लेख किया है 'ए ' के माध्यम से स्कोप रिज़ॉल्यूशन ऑपरेटर (: :) , एक फ़ंक्शन के अंदर से जहां समान नाम वाले स्थानीय चर को परिभाषित किया गया है:

#शामिल

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

int यहाँ = पंद्रह ;

int यहाँ मुख्य ( )

{

int यहाँ = 35 ;

अदालत << 'वैश्विक चर a का मान है' << :: << endl ;

अदालत << 'स्थानीय चर a का मान है' << << endl ;

वापस करना 0 ;

}

उपरोक्त कोड में, मुख्य कार्य के बाहर मौजूद चर a है वैश्विक चर और चर a मुख्य कार्य के भीतर है स्थानीय चर वैश्विक चर के समान नाम के साथ। cout स्टेटमेंट में हमने ग्लोबल वेरिएबल को प्रिंट करने के लिए स्कोप रेजोल्यूशन ऑपरेटर का इस्तेमाल किया है .

उत्पादन

3: क्लास के बाहर एक फंक्शन को परिभाषित करें

C++ में, आप क्लास परिभाषा के बाहर एक क्लास फ़ंक्शन को परिभाषित कर सकते हैं और इसका उपयोग करके किया जा सकता है स्कोप रिज़ॉल्यूशन ऑपरेटर (::) यह निर्दिष्ट करने के लिए कि फ़ंक्शन किस वर्ग का है। यह आवश्यक है क्योंकि फ़ंक्शन को वर्ग के दायरे से बाहर परिभाषित किया गया है।

यहाँ एक उदाहरण कोड है जो इस उपयोग को प्रदर्शित करता है स्कोप रिज़ॉल्यूशन ऑपरेटर :

#शामिल

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



क्लास माय क्लास {

जनता :

खालीपन myfunction ( ) ;

} ;

खालीपन मेरी कक्षा :: myfunction ( ) {

अदालत << 'मायफंक्शन () कहा जाता है!' ;

}

int यहाँ मुख्य ( )

{

myClass क्लासObj ;

classObj. myfunction ( ) ;

वापस करना 0 ;

}

उपरोक्त कोड में, सदस्य कार्य करता है मेरा कार्य () का उपयोग करके कक्षा के बाहर परिभाषित किया गया है स्कोप रिज़ॉल्यूशन ऑपरेटर :: यह निर्दिष्ट करने के लिए मेरा कार्य () MyClass वर्ग के अंतर्गत आता है।

उत्पादन

4: क्लास के स्टेटिक सदस्यों तक पहुँचें

सी ++ में, जब एक स्थिर सदस्य होता है और एक ही नाम वाला स्थानीय चर कक्षा के भीतर मौजूद होता है, तो स्कोप रिज़ॉल्यूशन ऑपरेटर (::) किसी वर्ग के स्थिर सदस्यों तक पहुँचने के लिए उपयोग किया जा सकता है। यह प्रोग्राम को स्थानीय चर और स्थिर सदस्य के बीच अंतर करने की अनुमति देता है।

यहाँ एक उदाहरण कोड है जो के उपयोग से संबंधित है स्कोप रिज़ॉल्यूशन ऑपरेटर ऐसे मामले के लिए:

#शामिल

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

क्लास माय क्लास {

जनता :

स्थिर int यहाँ myStatVar ;

} ;

int यहाँ मेरी कक्षा :: myStatVar = 5 ;

int यहाँ मुख्य ( ) {

int यहाँ myStatVar = 10 ;

अदालत << 'स्थानीय चर myStatVar:' << myStatVar << endl ;

अदालत << 'वर्ग चर myStatVar:' << मेरी कक्षा :: myStatVar << endl ;

वापस करना 0 ;

}

उपरोक्त प्रोग्राम पहले एक वर्ग को परिभाषित करता है मेरी कक्षा एक स्थिर सदस्य चर के साथ myStatVar . यह तब प्रोग्राम के मुख्य कार्य के अंदर एक ही नाम के साथ एक स्थानीय चर को परिभाषित करता है। वर्ग चर का उपयोग करने के लिए, स्कोप रिज़ॉल्यूशन ऑपरेटर (::) वर्ग नाम के साथ प्रयोग किया जाता है मेरी कक्षा . प्रोग्राम दोनों वेरिएबल्स के मान को कंसोल में आउटपुट करता है।

उत्पादन

5: एकाधिक इनहेरिटेंस के साथ प्रयोग करें

स्कोप रिज़ॉल्यूशन ऑपरेटर (::) इसका उपयोग यह इंगित करने के लिए भी किया जाता है कि सदस्य के किस संस्करण का उपयोग करना है जब एक सी ++ वर्ग कई माता-पिता वर्गों से प्राप्त होता है जिसमें सदस्य चर या समान नाम वाले फ़ंक्शन होते हैं। हम एक ही सदस्य के विभिन्न संस्करणों के बीच का उपयोग करके अंतर कर सकते हैं स्कोप रिज़ॉल्यूशन ऑपरेटर उसके बाद मूल वर्ग का नाम और सदस्य का नाम।

#शामिल

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

कक्षा अभिभावक 1 {

जनता :

खालीपन छपाई ( ) {

अदालत << 'यह क्लास पेरेंट1 प्रिंट फंक्शन है।' << endl ;

}

} ;

कक्षा अभिभावक 2 {
जनता :
खालीपन छपाई ( ) {
अदालत << 'यह क्लास पेरेंट2 प्रिंट फंक्शन है।' << endl ;
}
} ;
क्लास माय क्लास : सार्वजनिक अभिभावक 1 , सार्वजनिक अभिभावक 2 {
निजी :
int यहाँ एक पर ;

जनता :
मेरी कक्षा ( int यहाँ एन ) {
एक पर = एन ;
}
खालीपन छपाई ( ) {
जनक1 :: छपाई ( ) ; // Parent1 के प्रिंट फंक्शन को कॉल करें
जनक2 :: छपाई ( ) ; // Parent2 के प्रिंट फंक्शन को कॉल करें
अदालत << 'संख्या का मान है:' << एक पर << endl ; // संख्या का मान प्रिंट करें
}
} ;
int यहाँ मुख्य ( ) {
myClass obj ( 42 ) ; // MyClass का एक ऑब्जेक्ट बनाएं, जिसकी संख्या 42 से शुरू हो
obj. छपाई ( ) ; // ऑब्जेक्ट के प्रिंट () फ़ंक्शन को कॉल करें
वापस करना 0 ;
}

उपरोक्त कार्यक्रम के उपयोग को प्रदर्शित करता है स्कोप रिज़ॉल्यूशन ऑपरेटर (::) के प्रिंट कार्यों के बीच अंतर करने के लिए जनक1 और जनक2 जब दोनों वर्गों द्वारा विरासत में मिला है मेरी कक्षा। कार्यों को कॉल करके अभिभावक वर्ग फ़ंक्शन नाम से पहले नाम, हम फ़ंक्शन के किस संस्करण का उपयोग करने के लिए निर्दिष्ट कर सकते हैं।

उत्पादन

जमीनी स्तर

स्कोप रिज़ॉल्यूशन ऑपरेटर (::) C ++ में एक महत्वपूर्ण घटक है जिसका उपयोग विभिन्न दायरे के स्तरों पर चर नामों तक पहुँचने के लिए किया जाता है। ऑपरेटर के विभिन्न उपयोग हैं, जिसमें एक भिन्न नाम स्थान में एक चर या फ़ंक्शन तक पहुँचना, एक वैश्विक चर का उपयोग करना, कक्षा के बाहर एक फ़ंक्शन को परिभाषित करना, एक वर्ग के स्थिर सदस्यों तक पहुँचना और कई वंशानुक्रमों का उपयोग करना शामिल है। हालांकि यह नए डेवलपर्स के लिए भ्रमित करने वाला हो सकता है, इसे समझना स्कोप रिज़ॉल्यूशन ऑपरेटर (::) अच्छे प्रोग्रामिंग अभ्यास के लिए आवश्यक है।