ページ 11

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

Posted: 2013年4月12日(金) 22:58
by dom

コード:

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

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

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

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

Posted: 2013年4月12日(金) 23:26
by dom
すみません。自己解決しました。
resizeでエラーが出ており、初期値を渡すことでなおりました。