初期化リストとコンストラクターの割り当て: 内部の違い
クラス メンバーを初期化するとき、メンバー初期化子リストを使用するか、値を割り当てるかを選択できます。コンストラクター本体内。内部的には、これらのアプローチには微妙な違いがあります。
メンバー初期化子リスト
次の例に示すように、メンバー初期化子リストを使用します。
MyClass::MyClass(): _capacity(15), _data(NULL), _len(0) { }
コンストラクター本体に入る前にメンバー変数を直接初期化します。これは、次の場合に特に役立ちます。
コンストラクターの割り当て
一方次の例のように、コンストラクター本体内で値を割り当てます。
MyClass::MyClass() { _capacity=15; _data=NULL; _len=0 }
は、コンストラクターの実行中に初期化を実行します。このアプローチは、非定数メンバーと、コンストラクターのパラメーターに基づいて初期化できるメンバーによく使用されます。
生成されたコードの比較
一般に、どちらのアプローチでも同様のものが生成されます。コード。ただし、定数メンバーまたは参照の場合、コンストラクターの代入によってコンパイル エラーが発生するため、メンバー初期化子リストのみがそれらを初期化できます。
以上がメンバー初期化子リストとコンストラクターの割り当て: いつどちらを使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。