コンストラクターでのフィールドの初期化: イニシャライザー リストとコンストラクター本体の違い
C では、コンストラクターは、オブジェクトの実行中にインスタンス フィールドを初期化する便利な方法を提供します。創造。コンストラクターのフィールド初期化には、初期化子リストとコンストラクター本体という 2 つの主な方法があります。
Initializer List
Thing(int _foo, int _bar): member1(_foo), member2(_bar) {}
初期化子リストは、コンストラクター パラメーターのすぐ後に続きます。リストを作成し、コンストラクター本体が実行される前にフィールドを直接初期化できるようにします。このメソッドは、構文が簡潔で分かりやすいため、一般に好まれます。
コンストラクター本体
Thing(int _foo, int _bar) { member1 = _foo; member2 = _bar; }
コンストラクター本体は、代入ステートメントを使用して関数本体内のフィールドを初期化します。この方法は、より多くのコード行が必要であり、代入ステートメントが希望の順序で実行されないとエラーが発生しやすいため、あまり一般的ではありません。
主な違い
結論
初期化子リストとコンストラクター本体の両方で C コンストラクターのフィールドを初期化できますが、一般的にはその明瞭さから初期化子リストが好まれます。安全性とパフォーマンス上の利点。これにより、フィールドが正しい順序で初期化されることが保証され、コンストラクター本体での潜在的なエラーが防止されます。
以上がイニシャライザ リストとコンストラクタ本体: C でフィールドを初期化する最良の方法はどれですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。