クラスで使用するアルゴリズムは同じだが、対象となるデータ型が異なるような場合は汎用クラスを用いるとよい。
汎用クラスの宣言は次の通り。
template <class T型> class クラス名 { ... }
実際にインスタンスを生成するときは
クラス名 <型> オブジェクト名
となる。
#include <iostream> using namespace std; template <class T> class Test { T mValue; public: void set(T i) { mValue = i; } void put() { cout << mValue << endl; } }; void main() { Test<int> a; Test<float> b; a.set(123); a.put(); b.set(456.0f); b.put(); }
キューやリストといったものに使うと便利。実際にそれを実装したのがSTL。