C++ sizeof
class A{ int a; char c; char b; }; class B{ char c; int a; char b; }; int main(int argc, char* argv[]) { cout<<sizeof(A)<<" "<<sizeof(B)<<endl; return 0; }
输出结果为8,12
class A1{}; class A2{}; class A3{}; class A4{int a;}; class A:A1,A2,A3{}; class B:A4,A2,A3{}; class C:A2,A4,A3{}; int main(int argc, char* argv[]) { cout<<sizeof(A)<<" "<<sizeof(B)<<" "<<sizeof(C)<<endl; return 0; }
输出2,8,4 好像是由于VS造成的
参考 http://blog.csdn.net/candyliuxj/article/details/6307814
参考http://zhidao.baidu.com/link?url=3EoEqmFhpRz8GykcmiH-UH2EXnZKyBtD_UatV6s86zW6tkBJKLfelkZNFDVjytXRYRPHRh2xqIUBEpZIhnRd6K&autorefresh=1382066735990
空的父类不需要分配空间,虚函数需要一个虚函数表,但是表的地址是共用的(对不同的虚函数)