इस खंड में हम देखेंगे कि C++ में नेमस्पेस और क्लास में क्या अंतर हैं। नामस्थान और वर्ग दो अलग-अलग अवधारणाएं हैं। कक्षाएं डेटाटाइप हैं। कक्षाएं मूल रूप से संरचनाओं का विस्तारित संस्करण हैं। कक्षाओं में डेटा सदस्य और सदस्य के रूप में कार्य हो सकते हैं, लेकिन नामस्थान में चर और फ़ंक्शन को एक में समूहित करके शामिल किया जा सकता है।
नामस्थान वस्तुओं के रूप में नहीं बनाया जा सकता है। समान कार्यों, वर्गों, चर आदि को अलग करने के लिए इस अवधारणा का उपयोग अतिरिक्त जानकारी के रूप में किया जाता है। चर, समान नाम वाले कार्यों को अलग-अलग नामस्थानों में रखा जा सकता है।
आइए अब हम नामस्थानों और वर्गों के कुछ महत्वपूर्ण अंतरों को इंगित करें।
-
नेमस्पेस का उपयोग पहचानकर्ताओं का समूह बनाने के लिए किया जाता है ताकि वे टकराएं नहीं। क्लास का उपयोग करके, हमें उस क्लास का इंस्टेंस बनाना होगा, लेकिन नेमस्पेस के लिए यह सच नहीं है।
-
नाम स्थान के लिए हम 'उपयोग' घोषणा का उपयोग करते हैं। कक्षाओं के लिए यह तब तक संभव नहीं है जब तक हम इससे व्युत्पन्न नहीं होते।
-
हम नाम स्थान को फिर से खोल सकते हैं और अनुवाद इकाइयों में अधिक तत्व जोड़ सकते हैं। यह कक्षाओं का उपयोग करके नहीं किया जा सकता है।
namespace my_namespace { int function1(); } namespace my_namespace { int function1(); }
-
कक्षा के लिए निम्नलिखित कोड ठीक नहीं है:
class my_class { int function1(); }; class my_class { int function1(); };
-
हम अनाम नामस्थानों का उपयोग कर सकते हैं, जो ठीक हैं, लेकिन हम अनाम वर्गों का उपयोग नहीं कर सकते जो त्रुटि पैदा करेंगे।
namespace{ //Legal int function1(); }; class { //create error int function1(); };