【发布时间】:2012-05-21 08:49:26
【问题描述】:
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));
?
【问题讨论】:
-
是的,这是唯一的区别,除了你可以重载
operator delete。
标签: c++ destructor void-pointers delete-operator