我正在编写一个 C++ 析构函数(我希望这是正确的术语;我是 C++ 的新手)并且我不确定我究竟需要什么来进行垃圾收集。假设我有 2 个指针作为实例变量,我需要对它们进行垃圾回收吗?如果我有一个对象作为实例变量呢?还是指向对象的指针?
对于究竟需要删除什么以及自动清理什么,我只是有点模糊。
谢谢
最佳答案
一般的经验法则是...如果您调用new
,请调用delete
。如果您调用了 new[]
,请调用 delete[]
。如果您在类之外访问这些指针并有效地共享它们,您需要小心“拥有”对象 delete
正在使用的共享对象。垃圾收集这个词不太合适。您想要销毁
对象并释放
它的内存。这就是 delete
/delete[]
所做的。 new
/new[]
分配内存并构造
一个对象。
在 C++ 中,没有垃圾收集器。您必须“手动”处理它。这并不是说这一切都很乏味。您可能会开始使用智能指针 来为您处理其中的一些逻辑。参见 this question想要查询更多的信息。
关于c++ - 我必须在 C++ 析构函数中收集什么垃圾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9074496/