模板就是建立通用的模具,大大提高复用性
C++另一种编程思想称为泛型编程,主要利用的技术就是模板;C++提供两种模板机制:函数模板和类模板
函数模板作用:建立一个通用函数。其函数返回值类型和形参类型可以不具体制定,用一个虚教的类型来代表。
具体语法如下:
template 函数声明或定义
上述语法中:
template:代表声明创建模板
typename:表示其后面的符号是一种数据类型。可以用class代替
T:通用数类型,名称可以替换,通常为大写字母
我们在这里举一个例子:
当我们想要实现两个数进行交换我们需要定义我们要传入参数的数据类型,例如:
void swapint(int &a, int &b)
{int temp = a;a = b;b = temp;
}
但是当我们想要交换两个浮点数时,我们需要重新写一个函数:
//交换两个浮点型的函数
void swapDouble(double &a, double &b)
{double temp = a;a = b;b = temp;
}
当我们还想要交换其他类型的变量时,我们仍然需要重新写一个函数,这增加了我们的代码量,这是我们就可以用模板进行函数实现的统一,样例如下:
template
void MySwap(T &a, T &b)
{T temp = a;a = b;b = temp;
}
模板其实就是将函数传入的参数类型进行了参数化,方便我们在交换不同不变量时重复套用相同函数,极大减少了我们的代码量。
我们使用模板时,有两个方式:
int a = 10;int b = 20;//两种方式使用函数模板//1、自动类型推导MySwap(a, b);//2、显示指定类型MySwap(a, b);cout << "a = " << a << endl;cout << "b = " << b << endl;
一种是当调用该函数时,有模板自动推导其类型,另外一种是我们自己说明我们要传入的函数类型。
上一篇:关于类比的句子
下一篇:关于元宵节的英语美句