私はこの小さなプログラムを書きました:
#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バイト(オブジェクトのサイズ)の目的が何であるか疑問があります。
2 番目の質問は、既定のコンストラクターが呼び出されるかどうかです。はいの場合、それは基本的に何をしますか?