2010-03-20 11 views
12

सी ++ में कोई भी नाम कोड का उपयोग उसी कोड बेस में काम करने वाले स्वतंत्र समूहों को अनजाने में उसी नाम से फ़ंक्शंस बनाने और इस प्रकार एक संघर्ष बनाने से काम करने के लिए कर सकता है। मेरे सवाल है, इससे पहले कि नाम स्थान के विचार बाहर आता है, कैसे एक सीसी में नेमस्पेस का अनुकरण कैसे कर सकता है?

उत्तर

18

में नाम स्थान का अनुकरण कर सकते हैं कुछ अलग नामकरण, जैसे द्वारा:

void namespace_group_function(); 

gtk+ इस पारंपरिक शैली के लिए एक प्रमुख उदाहरण है:

GtkWidget* gtk_window_new(GtkWindowType type); 
+0

यह स्वतंत्र समूहों को अलग करने के लिए काम करता है, लेकिन यह तर्क आश्रित लुकअप और नेमस्पेस एलियासिंग का समर्थन नहीं करता है। –

+0

मुझे वास्तव में यह तथ्य पसंद है कि कक्षाओं के लिए लाइब्रेरी उपसर्ग CamelCased है, जबकि यह कार्यों के लिए अंडरस्कोर है। यह चीजें अच्छी और सुसंगत दिखती है। –

2

प्रतीकों के निर्यात के लिए आप प्रत्येक मॉड्यूल को एक अलग फ़ाइल में नहीं डालते हैं।

निर्यात किए गए प्रतीकों के लिए आप आमतौर पर एक उपसर्ग लागू करते हैं। दो या तीन अक्षर आम हैं।

6

अपने सभी सार्वजनिक प्रतीकों के नाम के लिए एक सामान्य उपसर्ग का उपयोग करें, इसलिए foo::barfoo_bar बन जाता है। सभी प्रतीकों के नाम पर एक उपसर्ग फेंकना अनिवार्य रूप से नामस्थान क्या करता है। (और उपसर्ग के उपसर्ग के बिना उपसर्ग का उपयोग भी किया गया है, जो कि बहुत उपयोगी है)

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

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