1
10
给出一个指针(
它不会在对象的成员变量中搜索其他指向空闲的指针;它不会释放任何其他内存,也不会执行任何其他操作。
如果你需要释放
然而,在几乎所有的C++代码中,你不必担心这一点。你应该使用像这样的智能指针
这是一个更广泛的习惯用法的一部分,范围限制资源管理(SBRM,也称为资源获取是初始化,或RAII)。这是迄今为止理解和使用C++代码中最重要的设计模式。 如果在你的班级里你已经声明了这一点:
然后当
在编写良好的现代C++代码时,您很少需要手动使用。
在第二个示例中,给出一个如下所示的链接列表:
您的操作顺序如下:
链接列表中的对象将按相反的顺序销毁。 |
2
1
我想
是的,我知道,
另外,你应该遵循 Rule of Three . 定义自己的析构函数,但依赖于隐式定义的复制构造函数和复制分配运算符,这是一个灾难的秘诀。 |
Patrick · 删除动态数组C时程序崩溃++ 8 年前 |
sestus · 在另一个类中执行删除时出现Valgrind错误 9 年前 |
Oleksiy · delete的一些用途是什么?[副本] 11 年前 |