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