何时删除[]指针c ++?

kbi*_*irk 0 c++ memory pointers

我已经习惯了c ++一段时间了,而来自java的一个最混乱的方面就是内存管理.例如,假设我有一个方法,并且在该方法中我声明了一个指向对象的指针,我想使用get方法将该指针设置为另一个对象的属性:

SubObject *mySubObject = anotherObject.getSubObject();
Run Code Online (Sandbox Code Playgroud)

我的问题是,当方法结束时,该指针会发生什么?我应该在结束之前使用以下内容吗?

delete mySubObject;
Run Code Online (Sandbox Code Playgroud)

如果我不删除它怎么办?它会一直持续到整个程序结束吗?

我已经尝试使用谷歌搜索c ++的基本内存管理教程,但我通常会发现更高级的东西,这些都是我的头脑,任何参考都会被认可.

Dav*_*eas 9

跟踪内存管理可能是一种负担,最好的建议是尽可能地避免它,并通过避免原始指针使其明确.如果您只需要临时访问其他位置的变量(在您的示例中,它是不同对象的成员,并因此在那里进行管理)您不应该这样delete做,如果您只是持有reference而不是一个指针,因为引用明确表明您没有管理该资源.