我的程序中出现了一点内存泄漏,这是我认为唯一可能发生的事情。
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();
}
添加了清理代码。
编辑:已解决
我的问题与向量的关系不如类的析构函数那么大。由于我没有定义虚拟析构函数,因此只删除了基类,留下了派生类的片段。添加后没有内存泄漏。