使用单个删除运算符删除多个指针
Deleting multiple pointers with single delete operator
对于删除和元素数组,我们使用delete[]
.是否可以按照我在下面的方式删除指针?
ClassA* object = new ClassA();
ClassA* pointer1 = object;
ClassA* object2 = new ClassA();
ClassA* pointer2 = object2;
delete pointer1,pointer2;
为什么不能以这种方式使用删除?
[编辑]
我可以这样说吗,上述删除没有实施的缺点是什么?
这
是不可能的,因为C++语言定义中没有对此进行规定。我不确定为什么该语言不支持delete
项目列表有任何"好"的答案,除了不这样做更简单的事实。
您需要为每个变量编写一个delete
。当然,如果你有很多pointerX
,那么你可能应该使用数组,并使用循环来删除对象。
编辑:当然,如果你在代码中的许多地方调用delete
,你可能做错了什么 - 或者至少,你没有很好地遵循RAII原则。当然,学习/理解动态分配以充分理解语言是必要的,但你应该真正避免在自己的代码中同时调用new
和delete
- 让其他人解决这个问题(或编写做"正确事情"的类)
它不是这样工作的。 删除是单个指针的命令。您可以将指针放在结构(例如数组)或容器(例如使用向量容器类)中,并通过迭代结构/容器来删除每个指针。
相关文章:
- 无法删除指针,已触发断点
- 删除指针数组 (C++) 中的元素
- 如果我删除指针,我的C++程序会意外删除系统文件吗?
- 为什么const_cast删除指针的恒常性,而不删除指向常量的指针的恒常性?
- 删除指针后内存泄漏
- 这是系统资源吗?(或者我怎么知道我是否需要删除指针) - 在 C++ 中使用 C
- C++ 从 2 组指针中删除指针
- 当删除 [] 指针工作时,为什么无法获得指向的数组大小?
- 在这种情况下,删除指针数组期间会发生什么?
- 在C++中删除指针数组时析构函数崩溃
- 何时/如何在使用指针后正确删除指针?
- 在C++库中,谁应该删除指针、用户或库?
- 删除指针后阻止对象使用 "this"
- 删除指针后C++尝试/捕获
- 删除指针内存分配以避免内存泄漏
- 删除指针时,未分配被释放的 C++ 指针错误
- 如何从抽象类中删除指针
- 我应该在 v8::外部手动删除指针吗?
- 删除指针
- C 如何删除指针的默认对象成员