C++汎用プログラミング
2900 ワード
汎用プログラミング(Generic Programming)は、標準的なコンテナライブラリを実現する言語メカニズムです.特定のタイプとは独立した方法でコードを記述し、テンプレートは汎用プログラミングの基礎です.
(1)関数テンプレートの定義(function template)
関数テンプレートは、タイプとは独立した関数であり、関数の特定のタイプのバージョンを生成できます.
(2)クラステンプレートの定義(class template)
定義されたクラステンプレートでは、タイプまたは値のプレースホルダとしてテンプレートパラメータを使用し、クラスを使用するときに特定のタイプまたは値を指定します.
しゅかんすうよびだし
注意:
(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;
}
inline。
template <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. , class,
template <class T1,class T2>