2011-03-17 24 views
13

सी ++ में, नेमस्पेस का उपयोग क्या किया जाता है?सी ++ में, नेमस्पेस के लिए क्या उपयोग किया जाता है?

using namespace std; 
+3

संभावित डुप्लिकेट [इसका उद्देश्य क्या है: "नेमस्पेस का उपयोग करके"?] (Http://stackoverflow.com/questions/4359706/whats-the-purpose-of-using-namespace) –

+1

' नेमस्पेस XXX का उपयोग करके; ', नीचे दिए गए उत्तरों देखें। 'नेमस्पेस std;' का उपयोग करने के विशिष्ट मामले के लिए, मैं अनुशंसा करता हूं कि आप कभी ऐसा न करें। पूरे 'std' नेमस्पेस को आयात करने से बहुत सारी समस्याएं हो सकती हैं। http://www.parashift.com/c++-faq-lite/coding-standards.html#faq-27.5 –

उत्तर

33

नेमस्पेस का नाम नाम विवादों को रोकने के लिए उपयोग किया जाता है।

उदाहरण के लिए:

namespace foo { 
    class bar { 
     //define it 
    }; 
} 

namespace baz { 
    class bar { 
     // define it 
    }; 
} 

अब आप कि पूरी तरह से नेमस्पेसिंग करने के लिए अलग और अलग धन्यवाद कर रहे हैं दो वर्गों नाम बार, है।

आपके द्वारा दिखाए गए नामस्थान का उपयोग करना इतना है कि आपको उस नामस्थान के भीतर कक्षाओं का उपयोग करने के लिए नामस्थान निर्दिष्ट करने की आवश्यकता नहीं है। यानी std :: स्ट्रिंग स्ट्रिंग बन जाती है।

2

इसका नाम नाम confilct को रोकने के लिए उपयोग किया जाता है, तो आपके पास अलग-अलग नामस्थानों में एक ही नाम के साथ दो कक्षाएं हो सकती हैं।

इसके अलावा यह आपके वर्गों को वर्गीकृत करने के लिए उपयोग किया जाता है, अगर आपने .NET फ्रेमवर्क देखा है, तो आप देखेंगे कि नामस्थान का उपयोग कक्षाओं को वर्गीकृत करने के लिए किया जाता है। उदाहरण के लिए, आप कर्मचारी कक्षाओं के लिए नामस्थान परिभाषित कर सकते हैं, और कार्य वर्गों के लिए एक नामस्थान, और दोनों नामस्थान कंपनी कक्षाओं के लिए नामस्थान के भीतर हैं, क्योंकि नामस्थान में उप नामस्थान हो सकते हैं।

अलग-अलग फ़ाइलों में एक ही नामस्थान मौजूद हो सकता है, इसलिए using यह उपयोगी हो सकता है क्योंकि यह आपको प्रत्येक #include डी फ़ाइल में नामस्थानों में सीधे सभी कक्षाओं का उपयोग करने में सक्षम बनाता है।

यही मुझे अभी याद है।

1

कोई पूछ सकता है, घुंघराले ब्रेसिज़ की सरल जोड़ी {} नाम संघर्ष को हल करने के लिए पर्याप्त हैं। फिर भी नामस्थान क्यों है। ऊपर वर्णित टैमर के रूप में एक त्वरित उत्तर यह है कि नामस्थान के साथ हमें दूसरी फ़ाइल में एक ही दायरे को खोलने की क्षमता मिलती है।

संबंधित मुद्दे