当我们声明一个类的对象是它的内存布局连续(一个接一个)?如果它的连续性比 padding 在其中发生(如结构填充) ?请帮我解决类的内存布局
的概念提前致谢。
答案 0 :(得分:7)
当我们声明一个类的对象时 它的内存分配是连续的(一 在另一个之后)?
本标准未给予任何此类保证。对象内存布局是实现定义的。
通常,数据成员的内存地址按照它们在类中定义的顺序增加。但是,在遇到访问说明符(private
,protected
,public
)的任何地方,此订单可能会中断。这已在Inside the C++ Object Model Lippman 中详细讨论过。
不允许编译器执行此操作 但重新排列本身。该 标准要求所有数据都是 在相同 public:,protected:或 私人:必须在那里布置 由编译器订购。 如果你 通过访问来散布您的数据 但是,编译器是说明符 允许重新排列 access-specifier-delimited块 数据改善布局,即是 为什么有些人喜欢进入 每个数据前面的说明符 构件
有趣,不是吗?