std::vectorを使うにはデフォルトコンストラクタが必要ですが

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

std::vectorを使うにはデフォルトコンストラクタが必要ですが

#1

投稿記事 by dom » 13年前

コード:

class Hoge;
std::vector<Hoge> v;
初期化忘れを防ぐためにHogeには引数をとるコンストラクタのみ持たせようと考えています。
しかし、そうするとvectorに入れることができません。しかたがないので

・デフォルトコンストラクタを追加し、あとから初期化メソッドで初期化。
・std::vector<Hoge*>のよにポインタを持たせる

というのを考えていますが、どちらが良いでしょうか。
また、他に何か良い方法がありますでしょうか?

dom

Re: std::vectorを使うにはデフォルトコンストラクタが必要ですが

#2

投稿記事 by dom » 13年前

すみません。自己解決しました。
resizeでエラーが出ており、初期値を渡すことでなおりました。

閉鎖

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