149、你知道空类的大小是多少吗?

1) C++空类的大小不为0,不同编译器设置不一样,vs设置为1;

2) C++标准指出,不允许一个对象(当然包括类对象)的大小为0,不同的对象不能具有相同的地址;

3) 带有虚函数的C++类大小不为1,因为每一个对象会有一个vptr指向虚函数表,具体大小根据指针大小确定;

4) C++中要求对于类的每个实例都必须有独一无二的地址,那么编译器自动为空类分配一个字节大小, 这样便保证了每个实例均有独一无二的内存地址。

原文地址:https://www.cnblogs.com/crbhf/p/15037450.html