class Num{
public:
Num():
a( 0 )
{
}
public:
int a;
int b[ 100 ];
};
classでこのように配列で宣言した場合初期化はどのようにすればいいのでしょうか?
お願いします
classで配列を宣言したときの初期化にて
Re: classで配列を宣言したときの初期化にて
素直に
とすれば良いのではないでしょうか。
それともint aと同じく初期化リストで初期化したいのでしょうか。
その場合は私にもわかりません。検索してみたところboostを使った方法などはあるようですが……。
しかしconst修飾子がついている定数の初期化なら別として、普通のメンバ変数を初期化するのならコンストラクタ内でも良いのではないかと思います(個人的意見)。
余談ですが、int aの宣言より先にコンストラクタでの初期化処理があるのでコンパイルエラーになるような気がします。気のせい?
それともint aと同じく初期化リストで初期化したいのでしょうか。
その場合は私にもわかりません。検索してみたところboostを使った方法などはあるようですが……。
しかしconst修飾子がついている定数の初期化なら別として、普通のメンバ変数を初期化するのならコンストラクタ内でも良いのではないかと思います(個人的意見)。
余談ですが、int aの宣言より先にコンストラクタでの初期化処理があるのでコンパイルエラーになるような気がします。気のせい?
Re: classで配列を宣言したときの初期化にて
クラスという事はC++でしょうから
STLのstd::vector等のコンテナをつかえばよろしいのではないでしょうか?
例えばベクタならコンストラクタに
vector( 要素数, 初期化する値 )
とすればよいですし、要素ごとに違う値で初期化したければ
vector(iterator_begin、iterator_end)
という方法もあります。
どちらにしてもconstな配列を初期化できます
STLのstd::vector等のコンテナをつかえばよろしいのではないでしょうか?
例えばベクタならコンストラクタに
vector( 要素数, 初期化する値 )
とすればよいですし、要素ごとに違う値で初期化したければ
vector(iterator_begin、iterator_end)
という方法もあります。
どちらにしてもconstな配列を初期化できます