次のクラスを考えてみましょう
class test1
{
private:
int a;
int b;
public:
test1():a(0),b(0){}
};
class test2
{
private:
int a;
int b;
public:
test2()
{
a=0;
b=0;
}
};
test1()
これで、コンストラクターが a のデータ メンバーを初期化する正しい方法であることがわかりました。これは、初期化ではなく代入を実行class
しているためです。test2()
私の質問は次のとおりです。
- 初期化の代わりに代入を実行すると何がうまくいかないのでしょうか?
test1()
コンストラクタの場合、コンパイラは内部的に代入を行いませんか? そうでない場合、これらはどのように初期化されますか?