C++中的类布局:为什么成员有时会有顺序?

9

C++标准规定,单个访问部分中的成员变量必须按照它们声明的顺序在内存中排列。同时,编译器可以自由选择访问部分之间的相互顺序。这种自由性理论上使得无法链接由不同编译器创建的二进制文件。那么,严格的部分内排序仍有哪些原因呢?而且,即将到来的C++09 新的C++11标准是否提供了一种“手动”完全确定对象布局的方式?


C++11 对此进行了修订,以澄清中间的 重复 访问说明符(无论出于何种原因)不会妨碍布局保证;只有当访问级别通过 不同的 说明符而非先前的重复发生改变时才会受到影响。 - underscore_d
4个回答

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接