この質問Deleting a const pointerを読んでいて、動作についてもっと知りたいと思っていましたdelete
。さて、私の理解によると:
delete expression
次の 2 つのステップで機能します。
- デストラクタを呼び出す
free()
次に、 operator delete を呼び出してメモリを解放します (多くの場合は を呼び出します)。
operator delete
を受け入れますvoid*
。テスト プログラムの一部としてオーバーロードしたところ、ポインターを受け入れないことがoperator delete
わかりました。operator delete
const
演算子 delete は const ポインターを受け入れず、delete は内部的に演算子 delete を呼び出すため、const ポインターの削除はどのように機能しますか?
delete
内部で const_cast を使用していますか?