C++类所占内存大小计算 说明:笔者的操作系统是32位的. class A {}; sizeof( A ) = ? sizeof( A ) = 1明明是空类,为什么编译器说它是1呢? 空类同样可以实例化,每个实例在内存中都有一个独一无二的地址,为了达到这个目的,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址.所以sizeof( A )的大小为1. class B { public: B() {} ~B() {} void MemberFuncTe
C++对象的大小不同的编译器的实现是不一样的,以下仅讨论.net2003,其他编译的可能出现的结果以下也做了分析和猜测.在反推不同编译器实现的C++对象的大小时.对齐是一个很重要也容易被遗忘的问题. class A{}; 类A是一个空类,但是它的大小并不为0,编译期间编译器会插入一个char在其中,这个char我们是看不到的,这样的用处是保证生成的不同对象具有不同地址,就是要对象里有东西. class B:public virtual A{};B类是对A类的虚继承,B中一般