我想知道什么是 size of an object of an empty class。它肯定可以 没有为0字节,因为它应该可以像其他对象一样引用和指向它。但是,这样一个物体有多大呢?
我用了这个小程序:
#include <iostream>
using namespace std;
class Empty {};
int main()
{
Empty e;
cerr << sizeof(e) << endl;
return 0;
}
我在 Visual C + + 和 Cygwin-g + + 编译器上得到的输出是 1字节!这让我有点惊讶,因为我期望它是机器字的大小(32位或4字节)。
有人能解释一下 why的1字节大小吗?为什么不呢4字节?这也依赖于编译器还是机器?另外,是否有人可以给出一个更有说服力的理由来解释为什么空类对象 不会的大小为0字节?