c++ - 在 C++ 中,哪个析构函数被调用?

标签 c++ destructor

我正在寻找程序中的内存泄漏。

我将范围缩小到一些未调用的析构函数。但是,我不明白为什么:

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/

相关文章:

c++ - 如何将变量传递给 std::async?

c++ - Boost::filesystem::is_empty() 为符号链接(symbolic link)返回 false

c++ - 密码字段中显示的额外字母

c++ - 如何使用 IGraphBuilder 播放 ogg Vorbis 文件

c++ - 无法找到内存泄漏的地方

c++ - 在什么情况下,c++的析构函数不会被调用?

c++ - 使用指向对象的指针进行析构

c++ - 如何异或这两个 vector 的内容?

c++ - 为什么代码两次调用析构函数?

c++ - 临时对象的取消引用运算符