C++ 之template

258 阅读1分钟

泛型编程

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;
}