ホームページ > バックエンド開発 > C++ > C の「this」ポインタが参照ではないのはなぜですか?

C の「this」ポインタが参照ではないのはなぜですか?

Patricia Arquette
リリース: 2024-11-24 16:50:18
オリジナル
767 人が閲覧しました

Why is the `this` Pointer in C   Not a Reference?

なぜ 'this' はポインタであり、参照ではないのですか?

プログラマは、'this' がポインタとして指定されているという混乱によく遭遇します。ただし、 C の参照ではありません。これにより、この設計選択の背後にある理由について疑問が生じます。

歴史的背景

C が開発の初期段階にあったとき、言語には参照が存在しませんでした。ポインタはメモリに間接的にアクセスするための唯一のメカニズムでした。参照は後で導入され、演算子をオーバーロードしてシームレスに機能できるようになりました。

ポインターである理由

ただし、参照には、有効性の保証や、有効性の保証など、ポインターに比べていくつかの利点があります。メモリをより安全に扱うために、歴史的な理由から「this」は指針のままでした。 C は、ユーザー コミュニティからのフィードバックを取り入れて段階的に進化しました。既存のコードの下位互換性を維持することの価値は、「this」を参照に変換することの潜在的な利点を上回りました。

参照のための追加の引数

歴史的な根拠にもかかわらず、いくつかの引数は「this」を参照にすることをサポートしています:

  • Item 1より効果的な C : 参照は、有効なオブジェクトが保証されている場合に推奨されます。これは通常、「this」の場合に当てはまります。
  • 安全性: 参照は、迷走ポインタによるメモリ破損を防ぎます。
  • 構文: 参照では、より簡潔で見た目が美しいものを使用します。ポインター演算子 (-> または *) と比較して、ドット演算子 (.) はプロパティにアクセスします。

結論

一方、参照には特定の点で利点があります。シナリオでは、歴史的な考慮事項により、'this' は C のポインターのままです。下位互換性の重要性と言語の段階的な進化がこの決定を形成し、参照がもたらす潜在的な利点にもかかわらず、この決定は続いています。

以上がC の「this」ポインタが参照ではないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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