सी ++ में नेमस्पेस नेट, एक्शनस्क्रिप्ट और जावा (जो एक ही अवधारणा को साझा करता है) के समान नहीं हैं। वे बिल्कुल वही अवधारणा नहीं हैं।
सी ++ में, नामस्थान मुख्य रूप से नामित संदर्भ, नामस्थान में कई प्रकार और कार्यों के समावेशन की अनुमति देने के लिए हैं। यह केवल नामकरण और नामों तक पहुंचने के बारे में है।
नेट, एक्शनस्क्रिप्ट और जावा में, नामस्थान नामों की तुलना में मॉड्यूल के बारे में अधिक हैं। वे डेवलपर को अपने कोड को अलग-अलग नामस्थानों में व्यवस्थित करने के लिए मजबूर करते हैं जो प्रत्येक एक उद्देश्य, संदर्भ के बारे में हैं। चूंकि ये भाषाएं गतिशील हैं (सी ++ जैसी स्थिर की बजाय), नामस्थान देर से बाध्यकारी प्रकार को कोड करने की अनुमति देते हैं, जिससे संकलन तेजी से हो जाता है क्योंकि आपके पास केवल उस फ़ाइल के कैननिकल नाम (नामस्थान + नाम) होना चाहिए जिसे आप फ़ाइल में उपयोग करना चाहते हैं ।
सी ++ में कोई मॉड्यूल अवधारणा नहीं है, केवल संकलन इकाइयां जो एक-दूसरे के बारे में बिल्कुल नहीं जानती हैं।
अब उनके उपयोग के बारे में, मॉड्यूल (निष्पादन योग्य या डीएल/एस), कुछ कार्यान्वयन कोड या कोड के किसी भी उपयोगी उप भाग को समाहित करने के लिए सी ++ में नामस्थान का उपयोग करना अक्सर अच्छा अभ्यास होता है। ऐसा कहा जाता है कि ज्यादातर समय नामस्थानों का गहरा पदानुक्रम नहीं होना बेहतर होता है। ऐतिहासिक कारणों से, बहुत से सी ++ डेवलपर्स को बहुत लंबे समय तक यह नहीं पता था कि सी ++ में नेमस्पेस नामक सुविधा थी। अब हम "आधुनिक सी ++" को क्या कहते हैं, यह सुझाव देते हैं कि आप इसके बारे में जानते हैं, लेकिन आज भी बहुत पुराने सी ++ कोड का उपयोग किया जाता है और हो सकता है कि आप नामस्थानों के बारे में बात करते समय यही देख रहे हों।
सी ++ में नामस्थान अन्य भाषाओं की तुलना में एक अलग सुविधा होने के कारण यह कोड में कम या ज्यादा स्पष्ट लिख रहा है। असल में, यह इतना अलग है कि आप इसे वैसे ही प्रबंधित नहीं करेंगे, जब आप कहने से आ रहे हैं तो कोड को समझना वाकई मुश्किल है। नेट। इसलिए आपको भाषाओं के बीच समान नामों को नाम नहीं लेना चाहिए, वे वास्तव में अलग-अलग अवधारणाएं हैं।
मुझे आश्चर्य है कि आप कौन सा कोड देख रहे हैं। "मुख्य कोड" को छोड़कर, मैं जो भी करता हूं, वह नामस्थान में है। – GManNickG
@GMan: ठीक है, एक उदाहरण के रूप में, [स्कॉट मेयर्स को उनकी परवाह नहीं है] (http://groups.google.com/group/comp.lang.c++.moderated/msg/f7e901ce6e8a86c0) (या, पर कम से कम वह उस वक्त नहीं था जब उसने लिखा था, नौ साल पहले)। –
मेयर्स नामस्थान की अवधारणाओं के बारे में शिकायत नहीं कर रहा था, बस समझौता (कोएनिग लुकअप) के बारे में भाषा में उन्हें फिर से निकालने के लिए आवश्यक था। –