ホームページ > バックエンド開発 > C++ > C で挿入されたクラス名の目的と歴史は何ですか?

C で挿入されたクラス名の目的と歴史は何ですか?

Linda Hamilton
リリース: 2024-12-16 07:16:11
オリジナル
475 人が閲覧しました

What is the Purpose and History of Injected Class Names in C  ?

C の注入クラス名 : 目的と歴史

C には、注入クラス名として知られる興味深い概念があります。クラス名を独自のスコープに挿入することで、この言語は、同じスコープ内に他の同様の名前のクラスが存在する場合でも、クラス内の名前検索で常に現在のクラスを見つけることができます。

この機能はシナリオで重要になります。次のようなものです:

void X() { }
class X {
public:
  static X create() { return X(); }
};
ログイン後にコピー

create() 関数は一時的な X オブジェクトを構築していますか、それとも関数 X を呼び出していますか?グローバル スコープでは、関数 X が呼び出されます。したがって、注入されたクラス名は、X クラス本体内で、名前 X が常にクラス自体を参照することを保証し、潜在的な曖昧さを防ぎます。

注入されたクラス名は、クラス テンプレートでも有益であることが判明し、テンプレート クラスで次のことが可能になります。

概念的には C 98 に存在していましたが、「注入されたクラス名」という用語が導入されました。 C 03 (DR 147) にあります。 C 98 より前の ARM 言語仕様では、概念が暗示されていましたが、特定の用語が不足していました。

挿入されたクラス名の利点:

  • メンバーの明確さアクセス: クラス内でのクラスの正確な識別を保証します。スコープ。
  • クラス テンプレートの単純さ: テンプレート引数なしで現在のクラスのインスタンス化への便利な参照が容易になります。

以上がC で挿入されたクラス名の目的と歴史は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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