2013-04-13 4 views
7

सी ++ मानक के अनुसार:सी ++ मानक लेआउट और संदर्भ

-Has प्रकार का कोई गैर स्थिर डेटा सदस्यों गैर मानक:

एक मानक लेआउट वर्ग कि एक वर्ग है लेआउट वर्ग (या इस तरह के सरणी) या संदर्भ।

क्या संपत्ति संदर्भ की (एँ) एक मानक लेआउट वर्ग की परिभाषा में शामिल होने से संदर्भ के सदस्यों के साथ वर्गों को रोकने?

+0

क्या आप मानते हैं कि ऐसी संपत्तियों की आवश्यकता है? वहां नहीं होना चाहिए ... – Yakk

+0

"रोकें" एक मजबूत शब्द है। एक बिंदु से, संदर्भ केवल संकलक को संरचना के इलाज के बजाय एक सार डेटा प्रकार के रूप में एक अच्छा बहाना देते हैं। भंडारण लेआउट विनिर्देश। संदर्भों में अपने * * का कोई भी भंडारण नहीं है। – jthill

उत्तर

11

एक मानक लेआउट क्लास मेमोरी में किसी विशेष प्रकार के लिए एक अच्छी तरह परिभाषित लेआउट रखने के बारे में है। सी ++ में, संदर्भ ऑब्जेक्ट्स नहीं हैं इसलिए ऐसे कोई स्टोरेज नहीं है जिसे एक अनुरूप प्रोग्राम द्वारा अच्छी तरह से परिभाषित तरीके से एक्सेस किया जा सके, भले ही कार्यान्वयन में आमतौर पर उनके लिए कुछ प्रकार के कार्यान्वयन विशिष्ट संग्रहण हो।

इस कारण से यह मतलब नहीं है कुछ में संदर्भ सदस्यों को बताया कि एक मानक लेआउट होना आवश्यक है करने के लिए के लिए

वहाँ सी ++ स्मृति मॉडल के बारे में खंड में मानक कहा गया है कि इस में एक गैर-प्रामाणिक टिप्पणी है:

[नोट: इस तरह के संदर्भ और आभासी कार्यों के रूप में भाषा के विभिन्न सुविधाओं, अतिरिक्त शामिल हो सकता है स्मृति स्थान जो प्रोग्राम के लिए सुलभ नहीं हैं लेकिन कार्यान्वयन द्वारा प्रबंधित किए जाते हैं। -एंड नोट]

+0

महान उत्तर के लिए धन्यवाद: यह सही समझ में आता है। – TRISAbits

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