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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まるか

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

#1

投稿記事 by まるか » 10年前

初めまして。まるかと申します。

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

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

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

コード:

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

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

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

#2

投稿記事 by h2so5 » 10年前

こう書けばそんなにいびつではないと思います。

コード:

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

閉鎖

“C言語何でも質問掲示板” へ戻る