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