为了代码重用,代码就必须是通用的;通用的代码就必须不受数据类型的哪只。那么我们可以吧数据类型改为一个设计参数。这种类型的程序设计称为参数化程序设计。软件模块由模版构造。包括函数模版和类模版。
函数模版可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的设计。
函数模版如下
template<模版参数表>
返回类型 函数名(形式参数表)
{
...;//函数体
}
<模版参数表>尖括号中不能为空,参数可以有多个,用逗号分开。模版参数主要是模版类型参数。
模版类型参数代表一种类型,由关键字class或typename(建议用typename)后加一个标识符构成,在这里两个关键词的意义相同,它们代表后面的参数名代表一个潜在的内置或用户设计的类型。
示例:
template<class T>
T my_max(T a, T b)
{
return a > b ? a:b;
}
int main()
{
my_max(12,13);
my_max('a','b');
my_max(12.23,34.45);
return 0;
}
函数模版根据一组实际类型或(和)值构造出独立的函数过程通常是隐式发生的,称为模版实参推演
