クラステンプレート
前回は関数テンプレートについて書きましたが今回はクラステンプレートについて書いていきます。
基本的なクラステンプレートの使い方
template<typename T> class TClass { public: T value; }; TClass<int> classInt; classInt.value = 5; TClass<float> classFloat; classFloat.value = 5; printf("%d %.1f", classInt.value, classFloat.value); 結果:5 5.0
クラステンプレートとはその名と通りでクラスをテンプレート化したものです。
関数テンプレートと違ってクラステンプレートには型推論が存在しません。
その為、使用する際には必ず型を指定する必要があります。
デフォルトテンプレート引数
テンプレートではデフォルトテンプレート引数の指定が可能です。
template<typename T = float> class TClass { public: T value; }; TClass<> classFloat; classFloat.value = 5.0f; printf("%.1f", classFloat.value); 結果:5.0
デフォルトテンプレート引数を指定している場合は型を指定していなくても実体を作ることが出来ます。
今回は短いですがこんなもんで!