c++ - 如果对象在程序的所有运行期间都应该存在,则不需要删除?

标签 c++ memory-management

看完this answer关于什么是内存泄漏,可以得出结论,如果对象在程序的所有运行期间都应该存在,并且是通过 new 创建的,则无需调用 delete对象。

因此,例如,如果我有一些主窗口和一些其他窗口/小部件,我在主窗口构造函数中使用 new 创建,我不需要在析构函数中调用 delete,因为主窗口析构函数将在程序退出时被调用,所以它不是内存泄漏。

最佳答案

直到你的程序成为更大程序中的一个模块,例如一个 servlet,这时你就有了漏洞。

它还会掩盖您的代码审查和 valgrind 的使用。 valgrind 会认为这是一个泄漏,为什么每次您尝试在其他地方追踪泄漏时都必须记住“那个很好”?

关于c++ - 如果对象在程序的所有运行期间都应该存在,则不需要删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855977/

相关文章:

c++ - 将二进制文件读取到 "unsigned char" vector 时的模板参数是什么

c++ - 如何在另一个程序中使用在一个程序中声明的变量?

c++ - 尝试使用 g++ 为 64 位 Windows 编译 .cpp

c++ - 如何阻止访客?

C++ 不读取 IF/Else 语句

linux - 所需的最小字节数

c - zsh :abort message after all the program has been run?

java - JVMTI 分析 : calculating the amount of stack memory

node.js - nodejs 减少 v8 垃圾收集器的内存使用量

c - 如何优化 malloc() 或动态填充未知大小的内存?