Cテンプレート
テンプレートは汎用プログラミングの基礎であり、特定のタイプに依存しない方法でコードを記述する必要があります。
テンプレートは、汎用クラスまたは関数を作成するための青写真または式です。 イテレータやアルゴリズムなどのライブラリコンテナは一般的なプログラミングの例であり、テンプレートの概念を使用して開発されています。
テンプレートを使用して関数だけでなくクラスを定義することができます、それらがどのように機能するかを見てみましょう-
機能テンプレート
テンプレート関数定義の一般的な形式はここに示されています-
ここで、typeは、関数が使用するデータ型のプレースホルダー名です。 この名前は、関数定義内で使用できます。
以下は、2つの値の最大値を返す関数テンプレートの例です-
上記のコードをコンパイルして実行すると、次の結果が生成されます-
クラステンプレート
関数テンプレートを定義できるように、クラステンプレートも定義できます。 ジェネリッククラス宣言の一般的な形式はここに示されています-
ここで、 type はプレースホルダーのタイプ名で、クラスがインスタンス化されるときに指定されます。 コンマ区切りリストを使用して、複数の汎用データ型を定義できます。
以下は、クラスStack <>を定義し、スタックから要素をプッシュおよびポップする汎用メソッドを実装する例です-
上記のコードをコンパイルして実行すると、次の結果が生成されます-