ページ 11

複数のメンバ変数の初期化方法

Posted: 2014年7月03日(木) 22:19
by まるか
初めまして。まるかと申します。

現在C++の勉強をしているのですが、気になった点があるので質問します。

C++では、メンバ変数の初期化(特にconstな変数)を行う際はコンストラクタ内で変数に初期値を代入するのではなく、
メンバイニシャライザ(コンストラクタ():メンバ変数(初期値) の記法)を使用するのが一般的であると聞いています。

ここまでは良いのですが、1つのクラスに初期化が必要なメンバ変数が10個を超えるような場合もあるかと思います。
(そのようなクラスの作り方が良いかどうかは別として)
この場合、コンストラクタの後ろにメンバイニシャライザを10個並べるのが一般的なやり方なのでしょうか?

コード:

Constructor():var1("aaa"), var2("bbb"), var3("ccc"), ... , var10("jjj") { ... }
と、コンストラクタの中身を書くまでがあまりに長くなってしまい、いびつに思えてしまいます。
このようにメンバ変数の数が多い場合でも、上記のような初期化方法が取られているのでしょうか。

Re: 複数のメンバ変数の初期化方法

Posted: 2014年7月03日(木) 22:49
by h2so5
こう書けばそんなにいびつではないと思います。

コード:

Constructor() :
  var1("aaa"), 
  var2("bbb"), 
  var3("ccc"), 
  ... ,
  var10("jjj") 
{ 
... 
}