プログラムで少しメモリリークが発生していますが、これが唯一の可能性があると思います。
if (inputType == 'S')
{
SavingAccount* savingAccount = new SavingAccount();
inFile >> *savingAccount;
accounts.push_back(savingAccount);
}
プログラムの最後にポインタのベクトルが削除されますが、私が持っている 3 種類のアカウントに対応しているように見える 3 つのエラー リークがあります。そうは言っても、ポインターをベクターに入れた後にポインターを削除すると、ベクター内のエントリも削除されます(これは予想通りでした)。
これを解決する方法を知っている人はいますか?
編集:
void Transaction::cleanUp()
{
for (int i = 0; i < accounts.size(); i++)
{
delete accounts[i];
}
accounts.clear();
}
クリーンアップ コードが追加されました。
編集:解決済み
私の問題は、クラスのデストラクタほどベクトルとは関係がありませんでした。仮想デストラクタを定義していなかったため、基本クラスのみが消去され、派生クラスのフラグメントが残りました。これを追加した後、メモリリークはありません。