「delete this」後の「this」の危険
C での「delete this」構造の使用法がないわけではありません。落とし穴。その使用に対する最初の 3 つの制限は理解できますが、値の検査やその他のアクションの実行に対する 4 番目の制限は複雑に思えるかもしれません。結局のところ、これは単なるポインタですよね?
この一見恣意的な制限の理由は、「delete this」を呼び出した後の「this」ポインタの値が未定義であることにあります。この未定義の値は、予期しない結果や壊滅的な動作を引き起こす可能性があります。
たとえば、整数への「this」ポインタを再解釈して、それにアクセスしようとすると想像してください。コンパイラーは、このアクションがハードドライブの消去を正当化するかどうかを自由に決定します。ほとんどのコンパイラはおそらくより合理的に動作するでしょうが、未定義の動作に直面してコンパイラの良性に依存するのは危険な行為です。
未定義の動作のリスクを回避するには、コンパイラを削除する前にポインタのコピーを作成することが賢明です。物体。これにより、元の「this」ポインタの動作が予測不可能なままであることを保証しながら、コピーの操作を続けることができます。
以上がC で「delete this」の後に「this」を使用するのはなぜ悪い考えなのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。