初期化リストとコンストラクターの割り当て: 内部とコードの違い
指定された C コードで、メンバー初期化子リストとコンストラクターでの値の割り当て。
メンバー初期化子リスト
コンストラクター名の後ろのかっこで囲まれたメンバー初期化子リストは、次の初期化に使用されます。
内部相違点
内部的には、生成されるコードは 2 つのアプローチで若干異なります。メンバー初期化子リストを使用する場合、コンパイラーは構築中にメンバー値をクラス オブジェクトに直接配置します。これにより、余分な代入操作が回避されます。コードの違い
指定されたコード スニペットの比較:両方のスニペットが 3 つのコードを初期化します。指定された値を持つプライベート メンバー _capacity、_data、および _len。ただし、最初のスニペットはメンバー初期化子リストを使用し、2 番目のスニペットはコンストラクター割り当てを使用します。
メンバー初期化子リストを使用する場合
MyClass::MyClass() : _capacity(15), _data(NULL), _len(0) { }
MyClass::MyClass() { _capacity = 15; _data = NULL; _len = 0; }初期化リストを使用する必要があります:
定数メンバーを初期化するには初期化するには参照
基底クラスのコンストラクターに引数を渡す
以上がメンバー初期化子リストとコンストラクターの割り当て: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。