C ++標準ライブラリII

テンプレートの特殊化は
、我々は別の実装を定義したい場合のために、特定のタイプがテンプレートされて渡されたとして、テンプレートパラメータを、私たちは、そのテンプレートの特殊化を宣言することができます。

例えば、聞かせて" のは、我々がどのようなタイプの一つの要素を格納し、それが増加すると呼ばれるただ一つのメンバ関数、持っていることができ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 ; 
}

 

おすすめ

転載: www.cnblogs.com/cjyp/p/11968570.html