:: (स्कोप रिज़ॉल्यूशन) ऑपरेटर का उपयोग वेरिएबल स्कोप के कारण छिपे हुए नामों को प्राप्त करने के लिए किया जाता है ताकि आप अभी भी उनका उपयोग कर सकें। स्कोप रिज़ॉल्यूशन ऑपरेटर का उपयोग यूनरी और बाइनरी दोनों के रूप में किया जा सकता है। आप यूनरी स्कोप ऑपरेटर का उपयोग कर सकते हैं यदि नेमस्पेस स्कोप या ग्लोबल स्कोप का नाम किसी ब्लॉक या क्लास में समकक्ष नाम की विशेष घोषणा द्वारा छिपा हुआ है। उदाहरण के लिए, यदि आपके पास 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; // ग्लोबल my_var को 1 पर सेट करें
my_var = 2; // लोकल my_var को 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; // स्टेटिक डेटा मेंबर को परिभाषित करें
int main() {
int X = 0; // क्लास टाइप X को छुपाता है
cout << X::count << endl; // क्लास X के स्टेटिक मेंबर का उपयोग करें
}
आउटपुट
इससे निम्न आउटपुट मिलेगा:
10