C++模版函数
定义方式:
template<typename 数据类型参数标识符>
<返回类型><函数名>(参数表)
{
函数体
}
知识点:
template是 定义模板函数的关键字;template后面的尖括号不能省略;typename(或class)是声明数据类型参数标识符的关键字,用以说明它后面的标 识符是数据类型标识符。这样,在以后定义的这个函数中,凡希望根据实参数据类型来确定数据类型的变量,都可以用数据类型参数标识符来说明,从而使这个变量 可以适应不同的数据类型。
例如:
template< typename T>
T fuc(T x, int y)
{
T x;
//……
}
如果主调函数中有以下语句:
double d;
int a;
fuc(d,a);
则系统将用实参d的数据类型double去代替函数模板中的T生成函数:
double fuc(double x,int y)
{
double x;
//……
}
注意:
1.模版函数的声明,也需要带有template< typename t>
2.关键字typename也可以使用关键字class,这时数据类型参数标识符就可以使用所有的C++数据类型
3.在template语句与函数模板定义语句<返回类型>之间不允许有别的语句。如下面的声明是错误的:
template< class T>
int i;
T min(T x,T y)
{
函数体
}