Person クラスがあります。この Person クラス内には、基本クラスであるポインター Strategy オブジェクトがあります (継承/ポリモーフィズムを使用しています)。
Strategy* strat;
パーサークラスもあります。そして、パーサー クラスで次の 2 行のコードを言います。
StrategyType* newStrat; = new StrategyType;
person.strat = newStrat
StrategyType は、基本クラス Strategy の階層の一部です。そして今、プログラムの最後でstratを削除したいので、メモリリークを引き起こしません。基本的にstratを削除する Person デストラクタを作成しました。しかし、問題は、私の Person デストラクタが私の Parser クラス内で呼び出され、そこで Person オブジェクトがスコープ外になることです。Person オブジェクトをそれよりも長く存続させたいと考えています。この問題を解決するために、Person オブジェクトを動的に割り当てることもできます。しかし、新しい問題は、動的に割り当てられた Person オブジェクトを削除するにはどうすればよいかということです。