Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में नेमस्पेस और क्लास के बीच अंतर


इस सेक्शन में हम देखेंगे कि C++ में नेमस्पेस और क्लास के बीच क्या अंतर हैं। नेमस्पेस और क्लास दो अलग-अलग कॉन्सेप्ट्स हैं। क्लासेस डेटा टाइप्स हैं। क्लासेस मूलतः स्ट्रक्चर्स का एक्सटेंडेड वर्जन हैं। क्लासेस डेटा मेंबर्स और फंक्शन्स को मेंबर्स के रूप में समाहित कर सकते हैं, लेकिन नेमस्पेस वेरिएबल्स और फंक्शन्स को एक साथ ग्रुप करके समाहित कर सकते हैं।

नेमस्पेस को ऑब्जेक्ट्स के रूप में नहीं बनाया जा सकता। इस कॉन्सेप्ट का उपयोग समान फंक्शन्स, क्लासेस, वेरिएबल्स आदि को अलग करने के लिए अतिरिक्त जानकारी के रूप में किया जाता है। समान नाम वाले वेरिएबल्स, फंक्शन्स को अलग-अलग नेमस्पेस में रखा जा सकता है।

अब आइए नेमस्पेस और क्लास के कुछ महत्वपूर्ण अंतरों को इंगित करें।

  • नेमस्पेस का उपयोग आइडेंटिफायर्स का एक ग्रुप बनाने के लिए किया जाता है ताकि वे क्लैश न करें। क्लास का उपयोग करके, हमें उस क्लास का एक इंस्टेंस बनाना होता है, लेकिन नेमस्पेस के लिए यह सच नहीं है।

  • नेमस्पेस के लिए हम 'using' डिक्लेरेशन का उपयोग करते हैं। क्लासेस के लिए यह संभव नहीं है जब तक कि हम उससे डेराइव न कर रहे हों।

  • हम नेमस्पेस को फिर से खोल सकते हैं और ट्रांसलेशन यूनिट्स में अधिक एलिमेंट्स जोड़ सकते हैं। यह क्लासेस का उपयोग करके नहीं किया जा सकता।

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(); };

  1. - C++ में डॉट (.) ऑपरेटर और -> में क्या अंतर है?

    डॉट और एरो ऑपरेटर दोनों का उपयोग C++ में क्लास के मेंबर्स को एक्सेस करने के लिए किया जाता है। वे केवल अलग-अलग परिदृश्यों में उपयोग किए जाते हैं। C++ में, क्लास, स्ट्रक्चर, या यूनियन के रूप में घोषित प्रकारों को क्लास टाइप का माना जाता है। इसलिए निम्नलिखित उन सभी तीनों को संदर्भित करता है। a.b केवल

  1. - C# में क्लास और स्ट्रक्चर में अंतर

    क्लास और स्ट्रक्चर के बीच अंतर करने के लिए, हमें पहले यह समझना होगा कि डेटा को धारण करने और परिभाषित करने के संदर्भ में दोनों स्ट्रक्चर और क्लास समतुल्य प्रतीत होते हैं। ये दोनों अपने डेटा सदस्यों में कुछ डिफ़ॉल्ट मानों को परिभाषित और धारण कर सकते हैं। लेकिन यदि हम इसे इस संदर्भ से परे मानते हैं तो

  1. - स्काला में ट्रेट्स और एब्स्ट्रैक्ट क्लासेस के बीच अंतर

    ट्रेट्स (Traits) ट्रेट्स जावा में इंटरफेस के समान होते हैं और trait कीवर्ड का उपयोग करके बनाए जाते हैं। एब्स्ट्रैक्ट क्लास (Abstract Class) एब्स्ट्रैक्ट क्लास जावा में एब्स्ट्रैक्ट क्लासेस के समान होती है और abstract कीवर्ड का उपयोग करके बनाई जाती है। उदाहरण स्काला में ट्रेट्स और एब्स्ट्रैक्ट क्ला