クラスのデフォルトのコンストラクターの動作について学習しようとしていますが、この状況を把握できません。
ケース 1:
class A
{
public:
int m;
string s;
};
次に、このクラスのオブジェクトを作成します:
a) A a; // Result: compiler initializing m with garbage value
b)A a = A(); // Result : compiler initializing m with garbage value
ケース 2:s
クラスから文字列を削除しました。
class A
{
public:
int m;
};
a) A a; // Result: when try to access m I get run time error
b)A a = A(); //Result: m is initialized to zero
Q1) ケース 1 とケース 2 に違いがあるのはなぜですか?
Q2) どちらの場合もクラスにデフォルトのコンストラクターを提供すると、a) と b) は同じになりますか?