网站建设制作解决方案seo排名怎么做
为了代码重用,代码就必须是通用的;通用的代码就必须不受数据类型的限制。那么我们可以把数据类型改为一个设计参数。这种类型的程序设计称为参数化程序设计。软件模块由模板(template)构造。包括函数模板(function template)和类模板(class template)。
函数模板可以用来创建一个通用功能的函数,以支持多种不同形参,简化重载函数的设计。
函数模板定义如下:
template<模板参数表>
返回类型 函数名(形式参数表)
{...;//函数体
}
<模板参数表>:尖括号中不能为空,参数可以有多个,用逗号分开。模板参数主要是模板类型参数。
模板类型参数代表一种类型,由关键字class或者typename后加一个标识符构成,在这里两个关键字的意义相同,它们表示后面的参数名代表一个潜在的内置或用户设计的类型。
示例:
#include<iostream>
using namespace std;
template<class T>
T my_max(T a,T b)
{return a > b ? a : b;
}
int main()
{cout << my_max(12, 23) << endl;cout << my_max('a', 'b') << endl;cout << my_max(12.23, 34.45) << endl;return 0;
}
输出结果为:
函数模板根据一组实际类型或(和)值构造出独立的函数的过程通常是隐式发生的,称为模板实参推演。
模板实参推演的过程如下:
在编译过程中,根据函数模板的实参构造出独立的函数,称为模板函数,这个构造过程被称为模板实例化。