私は C++ でガベージ コレクターを作成しようとしてきました。これを私のすべての基本クラスとして設計しました。このクラスは、garbageCandidate へのポインターを含む静的ベクターを保持し、すべての GarbageCollector インスタンスがベクターに「this」をプッシュします。 .
次に、静的関数が来て、静的ベクトル内のすべてのポインターを削除します。
削除機能 (最初のポインターの削除) の最初で、削除が無効なポインターで使用されたことを示すエラーが表示されます...
これは静的/動的バインディングと関係がありますか? つまり、「父」クラスで削除を呼び出し、実際には子であるため、削除演算子は期待どおりに動作できませんか?
これを回避する方法は、仮想デストラクタを作成することでしょうか? (または仮想削除機能)?
または私は何かを完全に逃しましたか?
ps:動的に作成されたテストに使用されるすべてのオブジェクト。