c++ - "delete"如何回收内存?

标签 c++ memory-management

我想集中讨论当我们说 delete ptr 时会发生什么。我知道我们类的析构函数被调用,然后新分配的空间量被回收。

如果我们的对象有其他指针等,它们是否也会被回收,还是取决于我们的构造函数的定义?

最佳答案

析构函数负责清除对象拥有的所有资源。这包括在需要它的指针上调用 delete。如果您的析构函数不这样做,那么您将发生内存泄漏。

如果您的对象具有自动存储持续时间的成员,那么会自动调用这些成员的析构函数。这是RAII的基础.

关于c++ - "delete"如何回收内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8575019/

相关文章:

c# - C#/.Net Framework 中的堆大小 - 它可以增长吗?如何增长?

performance - 一个java进程可以使用多少个cpu核心?

C++ string.empty 不工作

c++ - C++ 中的字符串到字节或 Char*

c++ - 模板是否适用于 std::variant 的访问?

c++ - 如何检查将 free() 与 new [] 一起使用的后果

C++ 并返回 null - 在 Java 中有效的方法在 C++ 中无效

c++ - 局部变量作用域问题

ios - 触摸 UITextField 时崩溃并显示 "message sent to deallocated instance"

c - 双自由或腐败(fasttop)