クラスのvector包含について

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

クラスのvector包含について

#1

投稿記事 by 赤鬼 » 13年前

クラス内で動的配列を定義したい場合ですが

コード:

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

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

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 13年前

codeタグをちゃんと確認して下さいね。/は前ですよ。

クラスで失敗するのは仰る通りですが、コンストラクタの初期化子を調べると幸せになれると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

赤鬼

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

#3

投稿記事 by 赤鬼 » 13年前

あ、本当だすみません。
以後気をつけます。

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

コード:

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

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

閉鎖

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