++で提供される非常に強力なツールです。これにより、ユーザーは特定のデータ型に限定するのではなく、幅広いデータ型のコードを作成できます。これにより、コードを柔軟で汎用的かつ強力にすることができます。++では、関数やクラス全体を「テンプレート化」できます。ジェネリックプログラミングの概念は、Java、Python、C#などのほとんどの高レベル言語に存在します。基本的な要点はすべての言語で同じですが、構文は言語ごとに異なります。ジェネリックプログラミングの助けを借りて、コードを1回だけ記述し、多数の異なるデータ型に対して何百もの時間を同時に使用します。それでは、クラスを取り、テンプレートに変えてみてください。T>ここでは、クラスをテンプレートに変換するために使用される形式と構文を見ることができます。(このクラスと一致しないすべての関数は、テンプレートタグで記述する必要があることに注意してください)。「T」は変数名であり、このテンプレートで使用できるデータ型が変数であることを示すために使用されます。Tはint、char、boolなどです。これに続いて、このクラスでデータメンバーとして宣言されたポインターにはT型が与えられます。任意のデータ型でもかまいません。他の2つの変数と混同しないでください。これらの変数は常に整数になるため、Tデータ型は与えられません。テンプレートの使用には多くのルールがあり、クラスのテンプレート関数を作成する際にはいくつかのことを念頭に置いておく必要がありますが、今のところ心配する必要はありません。実際、クラスをテンプレートクラスにすると、クラスの名前もある意味で変わります。これは、クラスの元の名前の後に、先ほど角括弧で囲まれて定義した総称名が続きます。テンプレートであるクラスのオブジェクトをインスタンス化する方法は、通常とは異なります。クラスを使用するデータ型を指定する必要があります。クラス名を記述した後、変数名の前に角括弧で囲まれたデータ型を指定します。3つの異なるタイプの3つのオブジェクトが作成されます。したがって、3つの異なるコンストラクターが呼び出され、クラス宣言で指定する必要があります。完全に異なるプロパティを持つ3つのオブジェクトを同じクラスからインスタンス化できるため、テンプレートの威力に注意してください。++でテンプレートを使用する強みがあります。