我想集中讨论当我们说 delete ptr 时会发生什么。我知道我们类的析构函数被调用,然后新分配的空间量被回收。
如果我们的对象有其他指针等,它们是否也会被回收,还是取决于我们的构造函数的定义?
最佳答案
析构函数负责清除对象拥有的所有资源。这包括在需要它的指针上调用 delete
。如果您的析构函数不这样做,那么您将发生内存泄漏。
如果您的对象具有自动存储持续时间的成员,那么会自动调用这些成员的析构函数。这是RAII的基础.
关于c++ - "delete"如何回收内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575019/