类Class的大小或结构体Struct的大小,简单的说就是内存对齐吧!
简单的说就是往大的对齐,这个时候就是考察数据定义前后了,譬如:
Struct pack{
bool bFlag;
int nValue;
char cValue;
}
它是多少?1+4+1=6,不是,复合类型往大的对齐,它是23.
所以,我们在定义结构体(或者包)时,一定要注意不要让二义性的结构把你搞晕了。
言归正传吧,类的内存分布,类是面向对象的核心概念,三个特征封装,继承,多态;多态太了不起了,什么搞大上的框架结构都向它靠拢,还必须会用了解精髓。
想了解类的内存分布以及多态的实现机制,那么在Visual Studio 2013(本人VS版本)的 工具->属性->配置属性->C/C++->命令行 的“其他选项”内填写 /d1 reportAllClassLayout即可,然后编写类,派生类,以及具有virtual的类等,进行编译,那么控制台自动打印它的内存大小及布局,以及所谓的vptr虚拟指针,虚拟表的关系,自己研究一下吧!