空类型不包含任何信息,按理来说它的sizeof应该是0;但C++中要求对于类的每个实例都必须有独一无二的地址,以便能区分出具体的实例,所以编译器往往会设置空类的大小为1字节:
class Foo { }; int main() { std::cout << sizeof(Foo) << std::endl; // 1 return 0; }