दिलचस्प पोस्ट
बिटमैप को बाइटअरे एंड्रॉइड में परिवर्तित करना टेम्प्लेट डोमेन लोड होने पर कोणीय टेम्पलेट / हुक में स्क्रिप्ट टैग गतिशील संसाधन लोड हो रहा है एंड्रॉइड आशावादी बनाम निराशावादी लॉकिंग किसी वेबसाइट के लिए एक ब्राउज़र टैब आइकन (फेविकॉन) कैसे जोड़ें? एंड्रॉइड में इमोटिकॉन प्रदर्शित करना PHP कर्ल एक ही अनुरोध में प्रतिक्रिया हेडर और शरीर को पुनः प्राप्त कर सकता है? Devise + Omniauth – साथ अतिरिक्त पैरामीटर कैसे पास करें? क्या करता है | = (एकल पाइप बराबर) और & = (एक समानांतर और समान) मतलब है XmlHttpRequest त्रुटि: अभिगम-नियंत्रण-अनुमति-उत्पत्ति द्वारा मूल नल की अनुमति नहीं है EntityFramework – समग्र कुंजी की क्वेरी शामिल है browscap ini निर्देश सेट नहीं है हो सकता है कि होस्ट ऑफ कन्वर्ज़न पर आकार 1 (आइए) हो सकता है? जावास्क्रिप्ट में समय की देरी कैसे निर्धारित करें डेटाफ़्रेम में एक समूहिंग चर के आधार पर लगातार इंडेक्स कैसे बनाएं

एक दायरे के बिना स्कोप रेज़ोल्यूशन ऑपरेटर

सी ++ में, एक दायरे के बिना उपयोग किए जाने वाले स्कोप रेज़ोल्यूशन ऑपरेटर का क्या उद्देश्य है? उदाहरण के लिए:

::foo(); 

वेब के समाधान से एकत्रित समाधान "एक दायरे के बिना स्कोप रेज़ोल्यूशन ऑपरेटर"

इसका अर्थ है वैश्विक क्षेत्र आपको इस ऑपरेटर का उपयोग करने की आवश्यकता हो सकती है जब आपके पास एक ही दायरे में विवादित फ़ंक्शंस या वेरिएबल्स हों और आपको वैश्विक स्तर पर उपयोग करने की आवश्यकता हो। आपके पास कुछ ऐसा हो सकता है:

 void bar(); // this is a global function class foo { void some_func() { ::bar(); } // this function is calling the global bar() and not the class version void bar(); // this is a class member }; 

यदि आपको क्लास सदस्य फ़ंक्शन के भीतर से वैश्विक बार () फ़ंक्शन कॉल करने की आवश्यकता है, तो आपको फ़ंक्शन के वैश्विक संस्करण को प्राप्त करने के लिए :: बार () का उपयोग करना चाहिए।

इसके अलावा आपको यह भी ध्यान देना चाहिए कि अधिभार रिज़ॉल्यूशन से पहले नाम का संकल्प हो। इसलिए यदि आपके वर्तमान दायरे में एक ही नाम के साथ कुछ है तो यह अन्य नामों को ढूंढना बंद कर देगा और उनका उपयोग करने का प्रयास करेगा।

 void bar() {}; class foo { void bar(int) {}; void foobar() { bar(); } // won't compile needs ::bar() void foobar(int i) { bar(i); } // ok } 

स्कोप रेज़ोल्यूशन ऑपरेटर ( :: 🙂 के साथ शुरू होने वाला एक नाम वैश्विक नाम स्थान में देखा जाता है। हम इसे मसौदा सी ++ मानक अनुभाग 3.4.3 योग्य देखे जाने वाले अनुच्छेद 4 देखकर देख सकते हैं, जो कहता है ( जोर दिया ):

यूनिअर स्कोप ऑपरेटर द्वारा प्रीफ़िक्स्ड नाम: (5.1) वैश्विक क्षेत्र में अनुवाद यूनिट में देखा जाता है , जहां इसका उपयोग किया जाता है। नाम वैश्विक नाम स्थान के क्षेत्र में घोषित किया जाएगा या एक ऐसा नाम होगा जिसका घोषणा वैश्विक उपयोग में प्रत्यक्ष-निर्देश (3.4.3.2) के कारण दिखाई देगी। का प्रयोग :: एक वैश्विक नाम को संदर्भित करने के लिए अनुमति देता है, भले ही इसकी पहचानकर्ता छिपा हुआ हो (3.3.10)।

मानक राज्यों के रूप में हमें वैश्विक नेमस्पेस से नामों का उपयोग करने की अनुमति मिलती है जो अन्यथा छिपी होती है , लिंक्ड दस्तावेज़ से उदाहरण निम्नानुसार है:

 int count = 0; int main(void) { int count = 0; ::count = 1; // set global count to 1 count = 2; // set local count to 2 return 0; } 

शब्दांकन बहुत ही समान है N1804 पर वापस जा रहा है जो कि उपलब्ध सबसे पहले प्रारूप मानक है।

जब आपके पास पहले से ही आपके स्थानीय क्षेत्र में फ़ू नामित फ़ंक्शन है लेकिन आपको वैश्विक क्षेत्र में एक का उपयोग करने की आवश्यकता है।

वैश्विक दायरे का जिक्र करते हुए

मेरा सी ++ जंगली है लेकिन मेरा मानना ​​है कि यदि आपके स्थानीय क्षेत्र में घोषित समारोह है, जैसे कि foo () और एक वैश्विक दायरे में, foo () स्थानीय को संदर्भित करता है :: foo () वैश्विक एक को देखेंगे