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字节?
3 回答
慕斯709654
TA贡献1840条经验 获得超5个赞
翻翻过去那场雪
TA贡献2065条经验 获得超14个赞
除非是位字段(class.bit),否则大多数派生对象都应该具有非零大小,并且占用一个或多个字节的存储空间。基类子对象的大小可能为零。 ISO/IECFDIS 14882:1998(E)Intro.Object
胡子哥哥
TA贡献1825条经验 获得超6个赞
sizeof
大多数派生类的大小应大于零。
&(array[0])
&(array[42])
char x; int y;
- 3 回答
- 0 关注
- 1056 浏览
添加回答
举报
0/150
提交
取消