Effective C++里面专门有一节讲这个
【 在 hgoldfish 的大作中提到: 】
: 标 题: Re: 刚才解决了一个内存泄露的 BUG
: 发信站: 水木社区 (Sat Apr 5 15:49:15 2025), 站内
:
: 字段在析构函数里面销毁的啊。
:
: 父类没有字段,所以它析构函数里面啥都不销毁。
:
: 子类有字段,需要调到子类的析构函数才会销毁。
:
: Base *p = new Derived()
: delete p;
:
: 以上代码,如果没有虚的析构函数,就会只调用 Base 的析构函数,而不会调到 Derived.
:
: 我写析构函数都习惯写虚的,不管有没有子类。这一次疏忽了。
:
: 【 在 freyoneby 的大作中提到: 】
: : 不懂为什么这样会泄漏,和虚析构有什么关系
: : 畔佟
:
: --
: 灭绝人性啊
:
:
: ※ 修改:·hgoldfish 于 Apr 5 15:51:22 2025 修改本文·[FROM: 120.37.23.*]
: ※ 来源:·水木社区 mysmth.net·[FROM: 120.37.23.*]
--
修改:hgoldfish FROM 120.37.23.*
FROM 117.129.55.*