एक नेस्टेड नाम स्थान विनिर्देशक है:
nested-name-specifier :
class-or-namespace-name::nested-name-specifier(optional)
है, नामस्थान और classnames की एक गैर खाली सूची, प्रत्येक :: द्वारा पीछा किया, एक का प्रतिनिधित्व कार्यक्रम के समग्र "नामस्थान पेड़" में सापेक्ष शाखाकरण। उदाहरण के लिए, my_namespace::
, my_namespace::inner_namespace::
, my_namespace::my_class::
, और my_class::
।
नोट विशेष रूप से अंतर से:
qualified-namespace-specifier :
::(optional) nested-name-specifier(optional) class-or-namespace-name
कि एक नेस्टेड-नाम-विनिर्देशक निरपेक्ष (::
उपसर्ग के साथ वैश्विक विस्तार का उल्लेख करने के लिए) नहीं किया जा सकता है, एक योग्य-नाम स्थान-विनिर्देशक हो सकता है, जबकि , लेकिन ::
के साथ समाप्त नहीं होता है।
अपने उदाहरण में, ::S
समारोह ::S()
, और नहीं struct (precendence वाले नियम के लिए सवाल आप अपने प्रश्न के शुरू में से जुड़ा हुआ में Stackoverflow पर यहां चर्चा की गई) पर ले कर जाता है, इसलिए यह एक नेस्टेड नाम नहीं है विनिर्देशक।
स्रोत
2010-11-05 06:27:58
अधिक मैं इस बारे में सोचते हैं, और अधिक मैं इस लगता है कि मैं सिर्फ इस सीखा एक बहुत अच्छा जवाब नहीं है। मुझे नहीं पता कि इसे सरल शब्दों में कैसे समझाया जाए लेकिन फिर भी पूरी तरह से सही हो ... –
लिटिल क्यू: 'ए :: बी' -> क्या मैं कह सकता हूं कि 'ए' ** क्वालीफाइंग निर्माण ** है और साथ ही साथ 'ए ::' एक नेस्टेड-नाम-विनिर्देशक है? –