C++の常識

テンプレートクラス


テンプレートクラスとは

 テンプレートクラスは、使用する型をあいまいな状態で定義するクラスです。
 テンプレートクラスの機能を使うと、複数の型に対応したクラスを作れます。

テンプレートクラスを定義する場合の構文

  template <テンプレート引数のリスト>
  class クラス名 {
  
      ・・・・・・・

  };

テンプレートクラスからオブジェクトを作成する場合の構文

  クラス名<型名> 識別子;

 上記で識別子がオブジェクト名になります。

 例を使って説明します。
 配列data[10]を持つクラスを作る場合を考えます。
 ここで、data[10]は10個のデータを持つ配列です。
 データの型がintか、doubleか、charか未定ですが、オブジェクトを作る段階で確定するとしましょう。
 そのような場合にテンプレートクラスを使います。
 まず、配列data[10]を持つクラスの名前をArrayにして、次のようにテンプレートクラスを定義します。

  template <class T>
  class Array {
  
          T data[10];

  };

 次に、実際にテンプレートクラスArrayのオブジェクトarrayを作成します。
 オブジェクトarrayではdata[10]をint型にしたい場合、次のように書きます。

  Array<int> array;