泛型编程
1,类模板
template<模板参数表> class 类名{
类成员声明;
}
尖括号里面的是模板参数,而模板参数和基本参数的一个区别是:模板参数不仅可以传变量和值,还可以传类型,模板应该放在头文件,本质是宏定义。
在类模板以外定义成员函数
template <模板参数表> 类型名 类名<参数列表>::函数名(参数表)
template <typename T> class Example{};
模板类中的函数都是模板函数。
template <class T> Node<T>::~Node()
{
......
}
2,函数模板
template<typename T> 返回类型 functionName(形式参数表){
//函数定义体
}
例子:
template<typename T> T xiansenAbs(T value){
return value<0?-value:value;
}