删除vs运算符删除(和void指针)

doc*_*doc 13 c++ destructor void-pointers delete-operator

是否delete ptr不同于operator delete(ptr)仅在于此,即delete调用ptr析构函数?或者换句话说,delete ptr首先调用析构函数ptr然后operator delete(ptr)释放已分配的内存吗?然后在delete ptr技术上等同于以下内容:

T * ptr = new T;

//delete ptr equivalent:
ptr->~T();
::operator delete(static_cast<void *>(ptr));
Run Code Online (Sandbox Code Playgroud)

bam*_*s53 8

delete ptr将执行重载解析operator delete,因此它可能不会调用全局::operator delete

但是,不然,是的.该delete运营商调用析构函数有关,如果有的话,然后调用operator delete.