兰州网站建设模板,北京最新,移动网站的开发流程,做网站销售好累为了代码重用#xff0c;代码必须是通用的#xff1b;通用的代码就必须不受数据类型的限制。那么我们可以把数据类型改为一个设计参数#xff0c;这种类型的程序设计称为参数化程序设计#xff0c;软件模板有模板构造#xff0c;包括函数模板和类模板。
函数模板可以用来…为了代码重用代码必须是通用的通用的代码就必须不受数据类型的限制。那么我们可以把数据类型改为一个设计参数这种类型的程序设计称为参数化程序设计软件模板有模板构造包括函数模板和类模板。
函数模板可以用来创建一个通用功能的函数以支持多种不同形参简化重载函数的设计函数模板的定义如下 template模板参数表 返回类型 函数名 形式参数表 { .......;//函数体 } 模板参数表尖括号中不能为空参数可以有多个用逗号分开模板参数主要是模板类型参数。
模板类型参数代表一种类型由关键字class或typename建议用typename后加一个标识符构成在这里两个关键字的意义相同它们表示后面的参数名代表一个潜在的内置或用户设计类型。 如下所示
templatetypename T //class typename
T Max(T a, T b)
{cout a type typeid(a).name() endl;cout T type typeid(T).name() endl; //对类型进行识别return a b ? a : b;
}int main()
{cout Max(12, 23) endl;cout Max(a,b) endl;cout Max(12.23,34.45) endl;}函数模板根据一组实际类型或值构造出独立的函数的过程通常是隐式发生的称为模板实参推演。
templatetypename T,int N
void PrintAr(T (br)[N])
{cout sizeof(br) endl;
}int main()
{int ar[10] { 1,2,3,4,5,6,7};double dx {1.2,2.3,3.4,4.5,5.6};//typename elemnum;PrintAr(ar);PrintAr(dx);return 0;
}