ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

汎用クラス

クラスで使用するアルゴリズムは同じだが、対象となるデータ型が異なるような場合は汎用クラスを用いるとよい。
汎用クラスの宣言は次の通り。

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