C++汎用プログラミング

2900 ワード

汎用プログラミング(Generic Programming)は、標準的なコンテナライブラリを実現する言語メカニズムです.特定のタイプとは独立した方法でコードを記述し、テンプレートは汎用プログラミングの基礎です.
(1)関数テンプレートの定義(function template)
関数テンプレートは、タイプとは独立した関数であり、関数の特定のタイプのバージョンを生成できます.
template <typename T>
int compare(const T &v1, const T &v2)
{
    if (v1 < v2) return -1;
    if (v2 < v1) return 1;
    return 0;
}
          inlinetemplate <typename T>   template <class T>)

(2)クラステンプレートの定義(class template)
定義されたクラステンプレートでは、タイプまたは値のプレースホルダとしてテンプレートパラメータを使用し、クラスを使用するときに特定のタイプまたは値を指定します.
template<typename T>
class ZHB
{
public:
    ZHB(T value);
    T get();
private:
    T a;
};

template<typename T>
ZHB<T>::ZHB(T value)
{
    a = value;
}

template<typename T>
T ZHB<T>::get()
{
    return a;
}

しゅかんすうよびだし
int main(int argc, char const *argv[])
{
    ZHB<int> zhb(3);
    int a = zhb.get();
    printf("%d
"
, a); return 0; }

注意:
1.    ZHB<int>,   ZHB
2.          template<typename T>
3.                 ,  C++          ,                      。
4.classtemplate <class T1,class T2>