c++ - Is a class a namspace -


निम्न कोड मुझे आपके प्रश्न को सीधे आपको समझाएगा:

  # include & lt; iostream & gt; वर्ग foo {सार्वजनिक: कक्षा बार {सार्वजनिक: बार (इंट ए): एम_ए (ए) {} शून्य कहें () {std :: cout & lt; & lt; M_a & lt; & lt; Std :: endl;} निजी: int m_a; }; }; Int main () {foo :: बार ख (3); b.say (); }  

जैसा कि आप देख रहे हैं, वर्ग बार के ऑब्जेक्ट को घोषित करने के लिए, हम काफी नाम स्थान का उपयोग सिंटैक्स जैसे "foo :: bar" करते हैं, हालांकि वास्तव में बार क्लास फू में सिर्फ एक एम्बीएड क्लास प्रकार है । मेरा प्रश्न यह है कि क्या क्लास का दायरा सी ++ में एक नेमस्पेस है?

वर्ग एक नहीं है नाम स्थान, यह एक क्षेत्र है आपने पहले से ही इस शब्द का इस्तेमाल खुद कर लिया है नामस्थान एक क्षेत्र है। कक्षा एक क्षेत्र भी है :: ऑपरेटर एक दायरा रिज़ॉल्यूशन ऑपरेटर है। स्कोप , नामस्थान नहीं, मौलिक शब्द है जो इस मामले में एक "आम भाजक" के रूप में कार्य कर सकता है। स्कोप इसका कारण यह है कि आप :: ऑपरेटर का उपयोग बाएं हाथ के दोनों वर्गों और नामस्थानों के साथ कर सकते हैं।


Comments