// MyClass.h
namespace MyNamespace {
static const double GasConstant = 1.987;
class MyClass
{
// constructors, methods, etc.
};
}
मैं पहले GasConstant MyClass घोषणा के भीतर घोषित (और सी ++ के बाद से स्रोत फ़ाइल में एक अलग परिभाषा गैर अभिन्न प्रकार के const
आरंभीकरण का समर्थन नहीं करता था) था पर है। हालांकि मुझे इसे अन्य फ़ाइलों से एक्सेस करने की आवश्यकता है और तर्कसंगत रूप से ऐसा लगता है कि इसे नामस्थान स्तर पर रहना चाहिए।क्या प्रभाव स्थिर स्थिरांक एक namespace सदस्य
मेरे प्रश्न है, static const
इस मामले में क्या प्रभाव है? स्पष्ट रूप से const
का अर्थ है कि मैं गैसकॉन्स्टेंट को नया मान निर्दिष्ट नहीं कर सकता, लेकिन नामस्थान पर स्थिर सदस्य का क्या अर्थ है। क्या यह फ़ाइल स्कोप पर स्थैतिक के समान है, जहां सदस्य इकाई के बाहर पहुंच योग्य नहीं है?
क्या यह एक हेडर फ़ाइल (.h) में है या एक कार्यान्वयन फ़ाइल (.cpp) में ??? – AnT
यह एक हेडर फ़ाइल (.h) में है। –
सी ++ में कोई फ़ाइल स्कोप नहीं है। यदि आप बाहरी कार्यों और कक्षाओं के बाहर हैं तो सी ++ में केवल नामस्थान स्कोप हैं। इसके अलावा यदि आप कुछ पृष्ठों पर पढ़ते हैं जिन्हें वे "वैश्विक" कहते हैं, तो आमतौर पर उनका मतलब है कि वैश्विक नामस्थान और अन्य नामस्थान शामिल हैं। उदाहरण के लिए, 'cplusplus.com' शब्द "ग्लोबल" के गलत उपयोग के लिए जाना जाता है। तो अगर कुछ "वैश्विक दायरे" में "स्थैतिक" के प्रभावों को समझाता है, तो आमतौर पर इसका नाम नेमस्पेस स्कोप में होता है। –