ページ 11

クラスのvector包含について

Posted: 2012年6月27日(水) 10:07
by 赤鬼
クラス内で動的配列を定義したい場合ですが

コード:

class A{
vector<int> array(100); //int 100分のメモリを確保しようとすると構文エラー(定数)が起きます
};
void main(){
vector<int> array(100); //此方は可
}
[code/]

クラスの包含の際にメモリの確保は出来ないのですか?
(つまりvecotr<int> array のように宣言だけして後でreserve()を使うしかないのですか?)

その理由も出来ればお願いします。
(クラスの定義であって実体が無いからかな、と思いますが) 

よろしくお願い致します。

Re: クラスのvector包含について

Posted: 2012年6月27日(水) 10:30
by softya(ソフト屋)
codeタグをちゃんと確認して下さいね。/は前ですよ。

クラスで失敗するのは仰る通りですが、コンストラクタの初期化子を調べると幸せになれると思います。

Re: クラスのvector包含について

Posted: 2012年6月27日(水) 10:53
by 赤鬼
あ、本当だすみません。
以後気をつけます。

>>コンストラクタの初期化子を調べると幸せになれると思います。

コード:

classA{
public:
vector<int> array;
A():array(10){}

}
あー、そうか、なるほど!!
vectorはクラスですからコンストラクタを呼んでやれば良いんですね!有難う御座います!