简单讲: 意思就是基类对象的内存大小是多少,那么在派生类的对象内存中,基类部分占用内存空间不变。比如,考虑字节对齐的情况,基类补齐的内存空间里面,不可能填充派生类的数据成员。
实力验证:
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
using namespace std;
class CBase{
//virtual void show(){}
private:
int nData;
char sz[3];
}; //基类中int占4字节,加char数组3字节,但是默认win32是4字节对齐,所以补充一个字节。
class CBase2:public CBase{
private:
char ch;
//virtual void show2(){}
};//派生类只有1个字节,如果父子空间可以合并,那么CBase2的大小应该是8字节;如果C++保证基类对象空间完整性,那么派生类的ch就需要额外填充3字节,并加上基类的8字节。
补充:c++编译器没有规定,在派生类对象中,父类对象内存空间是在派生类数据成员的前面,还是后面。(一般父类在前)
int _tmain(int argc, _TCHAR* argv[])