2011-03-08 9 views
5

मैं कुछ C++/CLI सामग्री से अधिक जा रहा हूँ और मैं एक शाब्दिक क्षेत्र की अवधारणा का सामना करना पड़ा:C++/CLI में लगातार चर बनाम शाब्दिक क्षेत्र

literal int inchesPerFoot = 12; 

एक स्थिरांक को यह पसंद किया जाता है क्योंकि एक स्थिरांक क्षेत्र मौजूद कर सकते हैं नहीं है, क्योंकि एक क्षेत्र में ही प्रारंभ नहीं कर सकते हैं ... इसलिए:

class aClass 
{ 
    private: 
     const int aConstant = 1; // Syntax error. 
... 
}; 

धन्यवाद,

स्कॉट

उत्तर

17

संकलन-समय स्थिरांक के लिए एक शाब्दिक क्षेत्र का उपयोग किया जाता है। यह कक्षा से जुड़ा हुआ है (एक "स्थैतिक आधार" क्षेत्र के समान)। आपके उदाहरण में aConstant एक गैर-स्थिर कॉन्स (एक उदाहरण आधारित) फ़ील्ड है - यही कारण है कि आप घोषणा के समय इसे प्रारंभ नहीं कर सकते हैं (इसे सीटीआर की प्रारंभिक सूची में प्रारंभ किया जाएगा)।

शाब्दिक और स्थैतिक आधार क्षेत्रों के बीच का अंतर यह है कि संदर्भित असेंबली स्थिर कॉन्स फ़ील्ड का उपयोग संकलन-समय स्थिरांक के रूप में नहीं कर सकते हैं, जबकि शाब्दिक हो सकते हैं। हालांकि, एक ही असेंबली के भीतर, स्थिर कॉन्स का उपयोग संकलन समय स्थिरांक के रूप में किया जा सकता है।

एफवाईआई, शाब्दिक सी # के कॉन्स के बराबर है। initonly सी # के पढ़ने के बराबर है।

+0

आपके उत्तर के लिए धन्यवाद! मैंने इनिटोनली के उल्लेख की भी सराहना की ... इसे पोस्ट करने के तुरंत बाद आओ। –

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