我正在寻找程序中的内存泄漏。
我将范围缩小到一些未调用的析构函数。但是,我不明白为什么:
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
的析构函数,您有任何提示吗?
最佳答案
你能在 ~CMain 中设置一个断点来看看它去了哪里吗?
关于c++ - 在 C++ 中,哪个析构函数被调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4508368/