ホームページ >バックエンド開発 >C++ >このクラス テンプレート内で「Link」の代わりにクラス名「Link」を使用できるのはなぜですか?

このクラス テンプレート内で「Link」の代わりにクラス名「Link」を使用できるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-04 06:31:29976ブラウズ

Why Can I Use the Class Name

クラス テンプレート内でのクラス名の使用

提供されたコード スニペットでは、パブリック メンバー変数 Link* にテンプレート パラメーターがありません。これは、「挿入されたクラス名」として知られる機能によるものです。

C 標準 ([temp.local]) によれば、クラス テンプレートのスコープ内では、挿入されたクラス名はテンプレート名の後に、<..> で囲まれたテンプレート パラメーターが続きます。ただし、型名として使用される場合、挿入されたクラス名はクラス テンプレート自体を参照します。

Link クラス テンプレートの場合、挿入されたクラス名は単に Link です。したがって、行 Link* next;事実上、Link* next; と同等です。挿入されたクラス名を短縮表現として使用すると、リンク ポインターのテンプレート パラメーターを明示的に指定する必要がなくなります。

この機能は、クラス テンプレート内で、特にテンプレート パラメーターのリストが広範囲に及ぶ場合に便利です。挿入されたクラス名を使用すると、過剰なテンプレート パラメーターでコードを乱雑にすることなく、クラス名自体を参照できます。

以上がこのクラス テンプレート内で「Link」の代わりにクラス名「Link」を使用できるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。