好的,这看起来似乎很荒谬,但是我经常看到使用引用删除动态分配内存的代码,如下所示:
Obj* ptr = &someObj;
delete ptr;
而不是看起来合乎逻辑的替代方案:
delete &someObj;
这背后是否有任何特殊的安全原因,还是仅仅是一件时尚的事情?
最佳答案
没有增加的安全性。这是引用代码编写者的风格选择。
PS。通过引用删除动态分配的内存是(或应该是)极为罕见的。将动态对象的地址存储在指针中是非常常见的约定。如今,很少有必要手动删除任何内存,因为该任务通常按惯例委派给智能指针。
关于c++ - 为什么似乎没有人写 `delete &someObj`?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42133782/