クラス メンバーを初期化 するには、常にメンバー初期化子リストを使用する必要があります。
initializeと言うことに注意してください。これは、構築時に値を提供することを意味します。そうしない限り、set
メソッドを明示的に呼び出してメンバーに特定の値を明示的に設定するまで、これらのメンバーの値は不確定になります。
setValues
そのためのコンストラクターの使用と同様のメソッドの使用に違いはありますか。
はい、違いがあります。C++ では、クラス メンバーを初期化する機会が提供されます。これは、メンバー初期化リストを介して行われます。メンバー初期化子リストでメンバーを初期化しない場合、メンバーは初期化されないままになります。つまり、値が不定になります。メンバーの状態が不確定であることは決して望まないでしょう。
set メソッドを使用する場合、実際にはメンバーを割り当てており、初期化していません。両者には次のような違いがあります。
Cost Member Initialization = Object Construction
Cost of Member Assignment = Object Construction + Assignment