4

クラスの作成時に、タイプに関係なく、すべてのデータメンバーを初期化することを強くお勧めします。これを行うには、コンストラクターの初期化子リストが最適です。

オブジェクトであるデータメンバーはどうですか?オブジェクトに十分なデフォルトの初期化子があると仮定すると、初期化子からそれらを省略することは良い習慣と見なされますか?

そのような:

class A{
private:
  AnotherClass B;
  int x;
public:
  A():x(5){} //B is never explicitly initialized
};
4

2 に答える 2

2

ユーザー定義型のメンバーを初期化するためにメンバー初期化子リストを使用しない場合、その特定の型のデフォルトのコンストラクターが呼び出されて、メンバー・オブジェクトが初期化されます。

メンバーがデフォルトのコンストラクターを使用可能であり、それがあなたの意図である限り、それは完全に問題ありません。

イニシャライザからそれらを省略することは良い習慣と考えられていますか?

それは選択と好みの問題です。私にとって、メンバー初期化リストはより直感的であるため、私はそれらを好みます。

于 2013-02-02T10:48:59.740 に答える