我写了这个小程序:
#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 字节(对象的大小)的目的是什么。
我的第二个问题是会调用默认构造函数吗?如果是的话,它基本上会做什么?