Я ищу утечки памяти в программе.
Я сузил его до того, что некоторые деструкторы не были вызваны. Однако я не могу понять, почему:
class CMain : public CList {
public:
CMain();
virtual ~CMain();
...
}
class CList : public CProc {
public:
CList();
virtual ~CList();
...
}
/* some code and a main func here */
CMain *pMain = new CMain();
/* some more code here */
delete pMain;
CMain
освобождается просто отлично, но ~CList()
никогда не вызывается. Все родительские классы CList
также имеют виртуальные деструкторы.
У вас есть какие-нибудь подсказки о том, почему деструктор для CList
никогда не вызывается?