天天看点

C++函数模板(function template)详解函数模板(function template)

函数模板(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;
           

参数化:

将具体的数据,做成参数,去解决不同数据的问题。

将具体的数据类型,做成参数,去解决不同数据类型的问题。

参数化,是软件开发过程中必须具有的一种思维模式。它提出将各种相同的数据用参数来代替,实际使用的过程中,我们只需要将具体的数据或者类型带入到参数中即可。

继续阅读