さまざまな子クラスをそこに格納できるようにするために、仮想基本クラスへのポインターのベクトルを保持するマネージャー クラスがあります。このマネージャ クラスのデストラクタで、保持しているすべてのポインタを循環して削除したいと考えています。ただし、遭遇した多くの方法を試しましたが、実行中にプログラムがクラッシュし続けます。
私が持っている現在のコードを以下に示します:-
for (std::vector<GameState*>::iterator it = gamestates_.begin(); it != gamestates_.end(); ++it){
delete *it;
it = gamestates_.erase(it);
}
私がまだ試していないことの 1 つは、unique_ptr を使用することですが、これを使用しなくても処理できるはずです。私が間違っている場合は、私を修正してください。
編集: ループの後にベクトルをクリアする必要があることは承知していますが、これは、ポインターを削除する通常の方法をすべて試した結果です。削除コマンドが気に入らないようです。