0

重複の可能性:
テンプレート クラスとクラス テンプレートの違いは何ですか?

私はこの質問を見て、受け入れられた答えも見ました。それから私は少しグーグルで、ここで以下を見つけました

テンプレート クラスとクラス テンプレート

テンプレート クラス: クライアントが必要な情報を提供するまでインスタンス化されない一般的な定義またはパラメーター化されたクラス。プレーンなテンプレートの専門用語

クラス テンプレート: クラス テンプレートは、クラスが個々のオブジェクトの構築方法を指定する方法と同様に、個々のクラスの構築方法を指定します。プレーンクラスの専門用語

どっちが本当なのか今迷ってる

4

2 に答える 2

3

C++ には、テンプレート クラスのようなものはありません。クラス テンプレートのみがあります。

つまり、文字通り、クラスを作成するためのテンプレートです。

template <typename T> std::vector<T>たとえば、クラスではありません。これは、適切な を指定すると、そこからTクラスを生成できるテンプレートです。

もちろん、「クラス テンプレート」の意味で「テンプレート クラス」と言うことが多いので、実際の違いはありません。ただし、形式的には、一方は C++ に存在し、もう一方は存在しません。

于 2012-05-17T10:10:27.177 に答える
2

英語では、順序は通常修飾子によって変更されるため、クラス テンプレートはクラスを定義するテンプレートであり、テンプレート クラスはテンプレートによって定義されるクラス、つまりクラス テンプレートのインスタンス化です。初期の頃、一部の文献はこの区別を使用していましたが、ある時点で、標準に取り組んでいる人々は混乱を招く可能性があると判断し、テンプレートのインスタンス化を意味する場合にインスタンス化という用語を体系的に使用することにしました。したがって、標準の言語では、「テンプレート クラス」が表示されることはありません (誤って挿入されない限り)。(より大きなコンテキストでは、「テンプレート クラス」は、ある種の「テンプレート」を実装または制御するクラスを指す場合があります。現在のアプリケーションでは、class Template {...};、 例えば。ただし、これは C++ テンプレートとは関係ありません。)

于 2012-05-17T11:16:50.763 に答える