函数模板(function template)
函数模板:
1.建立通用的函数,函数的类型和形参的类型不用指定,而用一个虚拟的类型来代表。将数据类型参数化。
2.凡是函数体相同的多个函数都可以使用函数模板。
有以下重载函数:
int Max(int, int, int);
float Max(float, float, float);
double Max(double, double, double);
建立一种模板:
函数模板的声明:
template<typename _Ty1> //这个_Ty1就是虚拟类型
template<class_Ty2> //类模板
函数模板的定义:
_Ty1 Max(_Ty1 a, _Ty1 b, _Ty1 c)
{
if (c > a)a = c;
if (b > a)a = b;
return a;
}
函数的调用:
int x=10, y=15, z=20;
int max = Max(x, y, z);
cout << max << endl;
float x1 = 10.2, y1= 15.6, z1 = 20.8;
float max1 = Max(x1, y1, z1);
cout << max1 << endl;
double x2 = 0.2, y2 = 5.6, z2 = 2.8;
double max2 = Max(x2, y2, z2);
cout << max2 << endl;
参数化:
将具体的数据,做成参数,去解决不同数据的问题。
将具体的数据类型,做成参数,去解决不同数据类型的问题。
参数化,是软件开发过程中必须具有的一种思维模式。它提出将各种相同的数据用参数来代替,实际使用的过程中,我们只需要将具体的数据或者类型带入到参数中即可。