有没有区别:
operator delete(some_pointer);
和
delete some_pointer;
如果是这样,有什么区别,应该在哪里使用这个运算符的另一个版本? 谢谢。
最佳答案
讽刺的是,delete
操作符和 operator delete()
并不是一回事。
delete some_pointer;
调用some_pointer
指向的对象的析构函数,然后调用operator delete()
释放内存。
你通常不会直接调用operator delete()
,因为如果你这样做了,对象的析构函数将不会被调用,你很可能会导致内存泄漏。
你唯一需要关心 operator delete()
的时候是你想通过重写 operator new()
和 operator 来进行自己的内存管理删除()
.
最重要的是,您还应该知道 delete
和 delete []
是两个不同的东西。
关于c++ - 哪个运营商删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3587275/