テンプレート パラメーターを使用せずにクラス テンプレートでクラス名を使用する
C ブックの次のコードを考えてみましょう。
<code class="cpp">template <typename E> class Link { ... Link* next; // this line may be confusing ... };</code>
このコードでは、テンプレート引数 E を指定せずにメンバー next が宣言されており、その正確性が懸念されます。次は Link
説明
これは「注入されたクラス名」の概念で説明されます。 C 標準 [temp.local] に従って、テンプレート引数なしで使用した場合、クラス テンプレート内のクラス名は、クラス名の後に山括弧で囲まれたテンプレート パラメーターが続いたものと同等になります。したがって、この場合、Link* は Link
このルールは便宜を目的としており、クラス内のクラス名が、クラス内のクラス名がクラス自体を参照し、外部エンティティを参照することを保証しません。同じ名前。クラス テンプレートの場合、特に拡張テンプレート引数リストを扱う場合に簡略記法が提供されます。
以上が`Link* next` は C テンプレートで挿入されたクラス名を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。