好的,这看起来似乎很荒谬,但是我经常看到使用引用删除动态分配内存的代码,如下所示:

Obj* ptr = &someObj;
delete ptr;

而不是看起来合乎逻辑的替代方案:
delete &someObj;

这背后是否有任何特殊的安全原因,还是仅仅是一件时尚的事情?

最佳答案

没有增加的安全性。这是引用代码编写者的风格选择。

PS。通过引用删除动态分配的内存是(或应该是)极为罕见的。将动态对象的地址存储在指针中是非常常见的约定。如今,很少有必要手动删除任何内存,因为该任务通常按惯例委派给智能指针。

关于c++ - 为什么似乎没有人写 `delete &someObj`?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42133782/

10-13 00:01