我正在阅读这个问题Deleting a const pointer并想了解更多关于delete
行为的信息。现在,根据我的理解:
delete expression
分两步工作:
- 调用析构函数
free()
然后通过调用 operator delete释放内存(通常通过调用)。
operator delete
接受一个void*
. 作为测试程序的一部分,我重载operator delete
并发现它operator delete
不接受const
指针。
由于 operator delete 不接受 const 指针,并且 delete 在内部调用 operator delete,所以删除 const 指针是如何工作的?
delete
内部使用 const_cast 吗?