函数模板
——用来创建一个通用功能的函数,以支持不同形参,进一步简化重载函数的函数体设计。
template<calss 类型名1,class 类型名2,...>
返回类型 函数名(形参表)
{
函数体;
}
- class是关键字,也可以是typename。
template <class T>
T add(T x,T y)
{
return x+y;
}
template <class T,int size>
T sum()
{
...
}
- 显式实例化:
函数名 <具体类型名1,具体类型名2,... ,常量表达式>(实参表)
如: add<double>(8,9) sum<int, 100>
- 隐式实例化:如add('A','B')
- 隐式实例化无法初始化模板参数表中的普通类型的参数,如果模板参数表中使用普通类型参数&#