テンプレートの特殊化は 、我々は別の実装を定義したい場合のために、特定のタイプがテンプレートされて渡されたとして、テンプレートパラメータを、私たちは、そのテンプレートの特殊化を宣言することができます。 例えば、聞かせて" のは、我々がどのようなタイプの一つの要素を格納し、それが増加すると呼ばれるただ一つのメンバ関数、持っていることができmycontainerと呼ばれる非常に単純なクラスがあるとし
、その値が増加します。しかし、我々は、それは、char型の要素を格納するとき、機能と完全に異なる実装持つことがより便利になることがわかり
、我々はそのタイプのクラステンプレートの特殊化を宣言することを決定したので、メンバーの大文字を:
テンプレートの特殊化
// テンプレート専門 の#include <iostreamの> 使用して名前空間はstdを、// クラステンプレート: テンプレート< クラス T> クラスmycontainer { T素子と 公共: mycontainer(T引数){要素 = 引数;} Tの増加(){ リターン ++ 要素;} }。// クラステンプレート特殊: テンプレート<> クラス mycontainer < チャー > { チャー素子。 公共: mycontainer(CHAR 引数){要素= 引数;} チャー大文字() { もし、((要素> = ' ')&&(要素<= ' Z ' )) エレメント + = ' A ' - ' ' 。 戻り値の要素; } }。INT メイン(){ mycontainer < INT >ミン(7 )。 mycontainer < 文字 > mychar(' J ' ); coutの <<ミント。 endl; COUT << mychar.uppercase()<< ENDL。 リターン 0 ; }