【发布时间】:2013-02-10 14:43:08
【问题描述】:
我写了这个小程序:
#include <iostream>
using namespace std;
class a{
};
int main ()
{
a *obj=new a();
cout<<sizeof(obj)<<endl;
cout<<sizeof(*obj)<<endl;
delete obj;
}
下面是我得到的输出:
> ./a.out
4
1
>
我可以理解它使用 4 个字节来存储对象的地址。 但我不明白的是 1 个字节。 因为它是一个空类,所以我怀疑那个 1 字节(对象的大小)的目的是什么。
我的第二个问题是会调用默认构造函数吗? 如果是的话,它基本上会做什么?
【问题讨论】:
-
这还有第二个问题,在给定的所谓重复链接中还没有答案。
-
@sarthi 好的,请考虑我的 cmets 我的帮助 这个链接可能是第二部分 What does a compiler add to an empty class declaration? 和 Are empty constructors always called in C++?
-
@Sarthi 我不是反对票,但我投了赞成票。
标签: c++