क्या सी ++ मानक कक्षा और संरचना के संकलन लेआउट को निर्देशित करता है? वे अलग-अलग कैसे संकलित होते हैं खासकर यदि वे खाली हैं?एक खाली वर्ग और खाली संरचना कैसे संकलित की जाती है?
7
A
उत्तर
13
यह एक तरह से करता है, यह कहता है कि इसे तब तक आवंटित करना होगा जब तक कि कुछ मामलों को बेस क्लास (खाली बेस क्लास ऑप्टिमाइज़ेशन के रूप में जाना जाता है) के रूप में उपयोग किया जाता है। यह गारंटी है कि विभिन्न वस्तुओं के अलग-अलग पते हैं।
उन्हें संकलित किया गया है कि struct
और class
डिफ़ॉल्ट पहुंच विनिर्देशक को छोड़कर, वही बात है। सी ++ 11मानक-लेआउट कक्षाओं/structs की धारणा पेश की गई है, और गारंटी देता है कि खाली कक्षाओं के लिए मेमोरी लेआउट समान है।
पहले प्रश्न पर दोनों मायने में Absolutelu "नहीं"। दूसरे प्रश्न के जवाब में एक वर्ग का "यह" सूचक है। – paulsm4
@ paulsm4: दूसरे प्रश्न का आपका उत्तर गलत है। इस संबंध में 'वर्ग' और 'संरचना' के बीच कोई अंतर नहीं है। बुद्धिमानी के लिए, 'संरचना' में 'आभासी' सदस्य हो सकते हैं। –
कक्षाएं और structs एक ही चीज़ हैं, केवल अंतर अंतर पहुंच विनिर्देश (सदस्यों और अड्डों के लिए) के साथ है। – GManNickG