C で「delete this」を実行した後、「this」にアクセスできないのはなぜですか?

Linda Hamilton
リリース: 2024-11-15 02:32:02
オリジナル
737 人が閲覧しました

Why Can't You Access

「this」Post「delete this」利用の落とし穴

C では、「delete this」構造は興味深い意味を持ちます。その使用に関する最初の 3 つの制限は賢明であるように見えますが、削除時に "this" との対話を禁止する 4 番目の制限は疑問を引き起こします: なぜですか?

この制限は、その値の検査や比較、キャストなどのアクションを禁止しています。 、または印刷することもできます。これは、「delete this」が呼び出された後は「this」の値が未定義になり、これに関係する後続の操作も未定義になるためです。

特定のコンパイラは賢明なアクションを実行する可能性がありますが、C 言語からの保証はありません。仕様。コンパイラは予期しない動作を実行する特権を保持しており、システムの整合性が損なわれる可能性があります。したがって、未定義の動作の呼び出しは常に回避する必要があります。

この制限を回避するには、「delete this」を実行する前に「this」ポインタのコピーを (整数として) 作成できます。これにより、「this」の元の値が保持され、未定義の動作が発生することなく後続の操作が可能になります。

以上がC で「delete this」を実行した後、「this」にアクセスできないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート