一个空类的大小为何不为零?
#include <iostream>
class SizeOfClass{
};
int main()
{
using std::cout;
using std::endl;
cout << sizeof(SizeOfClass) << endl;
SizeOfClass instance;
cout << sizeof(instance) << endl;
system("pause");
return 0;
};
问题:空类中没有包含任何信息,按照常理大小应该为零,但在实现中为何不为零呢?
解析:当声明一个类型(包括内置类型)对象实例(变量)时,会包括:1)信息存储的地方
2)存储的信息 3)存储的类型。同样声明一个空类型 如例子的SizeOfClass的实例时
会分配存储的空间,否则就无法使用实例instance。至于分配多大的内存跟编译器的实
现有关,超过了本题要讨论的范围了。