在C ++中,我认为C ++标准与内存布局方面的数据成员在类中的排列方式无关?我是否正确地认为这取决于有问题的编译器?
我非常有兴趣了解对象和其他C ++实体(结构等)如何在物理内存中表示(我知道列表是节点到节点,数组是连续内存 - 但语言的所有其他方面)
编辑:学习x86汇编程序会对此有所帮助并更好地理解C ++吗?
答案 0 :(得分:6)
C ++标准确实指明了一些事情,但远非一切。
主要规则如下:
public:
/ private:
/ protected:
分隔的标准规定了更多的部分,但总的来说,剩下的细节实际上归功于编译器。
答案 1 :(得分:2)
是的,该标准没有说明如何在内存中表示对象。要了解如何表示规范的C ++对象,请阅读本书:inside C++ object model.
答案 2 :(得分:1)
检查这些链接以了解C ++类的布局(“PCASM”一书中有关于它们如何表示的完整章节)
http://forums.codeguru.com/archive/index.php/t-428671.html http://www.drpaulcarter.com/pcasm/pcasm-book-pdf.zip