gpt4 book ai didi

c++ - 删除与运算符删除(和空指针)

转载 作者:IT老高 更新时间:2023-10-28 23:01:35 28 4
gpt4 key购买 nike

delete ptroperator 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));

?

最佳答案

delete ptr会对operator delete做重载解析,所以它可能不会调用全局::operator delete

但除此之外,是的。 delete 运算符调用相关的析构函数(如果有),然后调用 operator delete

关于c++ - 删除与运算符删除(和空指针),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10573678/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com