C++相談室 part9
■ このスレッドは過去ログ倉庫に格納されています
0638572
NGNG『コンテナ』が、std::vectorやstd::listやらのことを指してるんなら、
こいつらは、標準の規定ではデフォルトコンストラクタを必要と
しなかったはずだよ。
配列の場合は、数が少ないなら Hoge array[] = {'a','b','c','d'};
って初期値を与えればいいだけだし、そもそも配列を使う状況なら、
たいていはvectorにしておけば代用可能だし。
コピーコンストラクタが初期化関数よりもコストがかかりすぎるのなら、
コンテナはインスタンスへのポインタを持つようにすればいいし。
その場合も、管理の手間を切り離すために、スマートポインタにして。
まあ、俺としては、『デフォルトコンストラクタ+初期化関数』
なんてのは不要(というか、やってはいけない設計)だと思ってるから、
こういうのを駆使して、デフォルトコンストラクタを使わなくてもいいように
してる。『コンパイラが保証してくれる』っていうメリットを、最大限に
享受したいから。
ん? 今ふと思ったけど、コンストラクタが2つ以上の引数をとる場合、
配列の初期化ってどうやるんだろう……? 誰か教えてちょ。
■ このスレッドは過去ログ倉庫に格納されています