C では、「delete this」構造は興味深い意味を持ちます。その使用に関する最初の 3 つの制限は賢明であるように見えますが、削除時に "this" との対話を禁止する 4 番目の制限は疑問を引き起こします: なぜですか?
この制限は、その値の検査や比較、キャストなどのアクションを禁止しています。 、または印刷することもできます。これは、「delete this」が呼び出された後は「this」の値が未定義になり、これに関係する後続の操作も未定義になるためです。
特定のコンパイラは賢明なアクションを実行する可能性がありますが、C 言語からの保証はありません。仕様。コンパイラは予期しない動作を実行する特権を保持しており、システムの整合性が損なわれる可能性があります。したがって、未定義の動作の呼び出しは常に回避する必要があります。
この制限を回避するには、「delete this」を実行する前に「this」ポインタのコピーを (整数として) 作成できます。これにより、「this」の元の値が保持され、未定義の動作が発生することなく後続の操作が可能になります。
以上がC で「delete this」を実行した後、「this」にアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。