//本机为64位的环境
类的普通成员函数是不占用字节的,有虚函数时,需要指向虚函数表的指针(所以跟有几个虚函数无关)和成员变量占用字节(静态成员变量不占用)。
cpp文件代码如下:
#include "class_size_attr.h"
Father father;
Son son;
int main(int argc ,char*argv[])
{
Empty empty;
printf("sizeof empty class is %d\n",sizeof(empty));
printf("sizeof father class is %d\n",sizeof(father));
printf("sizeof son class is %d\n",sizeof(son));
}
1、空类的长度为1 :为了实现每个实例在内存中都有一个独一无二的地址,编译器往往会给一个空类隐含的加一个字节,这样空类在实例化后在内存得到了独一无二的地址,所以空类所占的内存大小是1个字节
2、父类,子类只包含一个char 数据成员