一、类成员的布局
1.静态数据成员布局在全局变量区。不同类的同名静态成员变量,编译器会对其进行编码来进行区分。
2.非静态成员的布局要求:在同一访问域(pubiic、private和protect)中后出现的成员在类对象中要有较高地址。(所以地址不一定连续、中间会有边界调整alignment产生的内存或者虚函数表等编译器产生的东西,多个访问域中的成员也*排列)。
但是目前的编译器一般将多个访问域连在一起,依照声明顺序连成一个连续的区块。
二、成员访问
1.静态成员变量:编译器将此访问直接转换为对该唯一实例的直接访问。
2.非静态成员变量:必须经由类对象访问(显式或隐式this)
①非虚继承:变量在对象内存中的位置(偏移量)在编译期即可确定。
②虚继承:变量的位置必须在运行期才能确认。