【发布时间】:2026-02-12 13:55:02
【问题描述】:
我一直在玩 c++ 一段时间,从 java 开始,对我来说最令人困惑的方面之一是内存管理。例如,假设我有一个方法,在该方法中我声明了一个指向对象的指针,我想使用 get 方法将该指针设置为另一个对象的属性:
SubObject *mySubObject = anotherObject.getSubObject();
我的问题是,当方法结束时这个指针会发生什么?我应该在它结束之前使用以下内容吗?
delete mySubObject;
如果我不删除它会怎样?它会一直持续到整个程序结束吗?
我已经尝试在谷歌上搜索 C++ 的基本内存管理教程,但我通常会发现更高级的东西,这超出了我的想象,任何推荐都会被欣赏。
【问题讨论】:
-
不了解anotherObject.getSubObject()很难给你一个好的答案
-
完成后删除
-
到底是什么问题?何时使用 delete[] 或何时使用 delete? @hexa 和 @Avada Kedavra 的回答解决了这些问题。
-
查看 this question 以获取有关 C++ 中对象删除的帮助
-
因为答案取决于 anotherObject.getSubObject() 和您的函数的作用。不要相信任何说删除或不删除而不要求进一步澄清的人。