ホームページ >バックエンド開発 >C++ >C++ テンプレート クラスを定義するにはどうすればよいですか?

C++ テンプレート クラスを定義するにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-06-05 14:28:01495ブラウズ

テンプレート クラスを使用すると、開発者はテンプレート クラスを定義し、テンプレート パラメータとして山括弧で囲み、インスタンス化するときに実際のタイプを指定するだけで済みます。データの種類。

C++ テンプレート クラスを定義するにはどうすればよいですか?

C++ テンプレート クラスを定義する方法

テンプレートは、型ごとに個別のクラスや関数を作成せずに再利用可能なコードを作成できる C++ の強力なツールです。この記事では、C++ テンプレート クラスを定義する方法を検討します。

構文

テンプレート クラスを定義するための構文は次のとおりです。

template<typename T>
class ClassName {
    // 模板类的代码
};

ここで、T は型パラメーターであり、テンプレート クラスが任意の型で使用できることを意味します。 T 是一个类型参数,它表示模板类可以与任何类型一起使用。

实例

让我们创建一个模板类,它可以存储和打印任何类型的数据:

template<typename T>
class ValueHolder {
public:
    ValueHolder(T value) : value(value) {}

    void printValue() {
        std::cout << value << std::endl;
    }
private:
    T value;
};

现在,我们可以在代码中使用 ValueHolder 模板类:

int main() {
    ValueHolder<int> intHolder(42);
    intHolder.printValue();  // 输出:42

    ValueHolder<std::string> stringHolder("Hello, world!");
    stringHolder.printValue();  // 输出:Hello, world!

    return 0;
}

在这里,我们创建了两个 ValueHolder 实例:一个用于 int 类型,另一个用于 std::string

インスタンス

あらゆるタイプのデータを保存および印刷できるテンプレート クラスを作成しましょう:
    rrreee
  • これで、コード内で ValueHolder テンプレート クラスを使用できるようになります:
  • rrreee
  • ここでは、 2 つの ValueHolder インスタンスを作成します。1 つは int 型用、もう 1 つは std::string 型用です。どちらのインスタンスも、対応する型の値を保存および出力できます。
  • テンプレート クラスの制限
🎜🎜🎜テンプレート クラスでは、テンプレート パラメーターに変数や定数ではなく、型のみを許可します。 🎜🎜テンプレート パラメーターは、テンプレート クラスのスコープ内で使用する必要があります。 🎜🎜テンプレート クラス内のすべてのインスタンスは同じ型パラメーターを持つ必要があります。 🎜🎜

以上がC++ テンプレート クラスを定義するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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