::(स्कोप रेजोल्यूशन) ऑपरेटर का उपयोग वैरिएबल स्कोप के कारण छिपे हुए नाम प्राप्त करने के लिए किया जाता है ताकि आप अभी भी उनका उपयोग कर सकें। स्कोप रिज़ॉल्यूशन ऑपरेटर को यूनरी और बाइनरी दोनों के रूप में इस्तेमाल किया जा सकता है
यदि किसी ब्लॉक या क्लास के दौरान एक समान नाम की एक निश्चित घोषणा द्वारा नेमस्पेस स्कोप या ग्लोबल स्कोप नाम छिपा हुआ है, तो आप सिंगल स्कोप ऑपरेटर का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आपके पास my_var नाम का वैश्विक चर और my_var नाम का स्थानीय चर है, तो वैश्विक my_var तक पहुंचने के लिए, आपको स्कोप रिज़ॉल्यूशन ऑपरेटर का उपयोग करना होगा। उदाहरण के लिए,
उदाहरण
#include <iostream> using namespace std; int my_var = 0; int main(void) { int my_var = 0; ::my_var = 1; // set global my_var to 1 my_var = 2; // set local my_var to 2 cout << ::my_var << ", " << my_var; return 0; }
आउटपुट
यह आउटपुट देगा -
1, 2
मुख्य समारोह में घोषित my_var की घोषणा वैश्विक नाम स्थान क्षेत्र में घोषित my_var नामक पूर्णांक को छुपाती है। स्टेटमेंट ::my_var =1 ग्लोबल नेमस्पेस स्कोप में घोषित my_var नाम के वेरिएबल को एक्सेस करता है।
आप वर्ग नामों या वर्ग सदस्य नामों का उपयोग करने के लिए स्कोप रिज़ॉल्यूशन ऑपरेटर का भी उपयोग कर सकते हैं। यदि किसी वर्ग के सदस्य का नाम छिपा हुआ है, तो आप इसका उपयोग इसके वर्ग नाम और वर्ग स्कोप ऑपरेटर के साथ उपसर्ग करके कर सकते हैं। उदाहरण के लिए,
उदाहरण
#include <iostream> using namespace std; class X { public: static int count; }; int X::count = 10; // define static data member int main () { int X = 0; // hides class type X cout << X::count << endl; // use static member of class X }
आउटपुट
यह आउटपुट देगा -
10