fud*_*din 0 c++ static memory-management class
当我们声明一个类的对象是它的内存布局是连续的(一个接一个)?如果它的连续性比在它中发生填充(就像结构填充)?请帮我一个类的内存布局的概念
提前致谢.
当我们声明一个类的对象是它的内存分配是连续的(一个接一个)?
标准没有给出任何此类保证.对象内存布局是实现定义的.
通常,数据成员的内存地址按照它们在类中定义的顺序增加.但这个顺序可以在其中访问修饰符(任何地方被打乱private,protected,public)遇到.这已经很详细的讨论里面的C++对象模型由李普曼.
来自C/C++ Users Journal的摘录,
但是,编译器本身不允许进行这种重新排列.该标准要求编译器必须按顺序排列同一 public:,protected:或private:中的所有数据.但是,如果您使用访问说明符散布数据,则允许编译器重新排列访问说明符分隔的数据块以改进布局,这就是为什么有些人喜欢在每个数据成员之前放置访问说明符.
有意思,不是吗?