14
でセマンティクスを周りにコピーしましょう特にデストラクタでクリーンアップが行われている場合は、実行時エラーが発生する可能性があります。私は通常、この問題を回避したいの方法は、だけではなく、ポインタのベクトルを作成することです:は、このコードを考えてみてくださいC++
std::vector<A*> test;
test.push_back(new A());
私の質問は2倍で、この一般的な方法であると、それは良い方法ですか?それとも良い方法がありますか? これが詐欺であると判明した場合は、私に知らせてください。私は質問を終わらせますが、検索で何も見つかりませんでした。
ポインタを使用しない*使用*の方法が一般的です。ポインタを使うのは良い習慣です。そして、あなたがポインタを使用せずに*動き*コンストラクタを実装した方がよいでしょう。 –
でも、リストに多型が必要な場合(そしてBが基本クラスの場合)、 'std :: vector test'が必要です。しかし、ここだけ...そして私はそれがメモリリーク/ダブルフリーには悪いことに同意します。 –
より良い方法は、 'B'の移動コンストラクタを実装することです。 –