1. ホーム
  2. c++

[解決済み] この場合、メンバ初期化リストとコンストラクタでの値の代入は違うのでしょうか?

2023-02-26 13:29:20

質問

内部および生成されたコードについて、.NETと.NETの間に本当に違いがあるのでしょうか?

MyClass::MyClass(): _capacity(15), _data(NULL), _len(0)
{
}

MyClass::MyClass()
{
  _capacity=15;
  _data=NULL;
  _len=0
}

ありがとうございます...

どのように解決するのですか?

これらの値がプリミティブ型であると仮定すると、違いはありません。 初期化リストは、オブジェクトをメンバーとして持つ場合にのみ違いが生じます。なぜなら、デフォルトの初期化後に代入を行う代わりに、初期化リストによってオブジェクトをその最終値に初期化することができるからです。 これは実際に顕著に速くなることがあります。