函数模板:
所谓函数模板就是调用一个通用函数,其类型和参数类型不具体指定,用一个虚拟类型表述
样例表示:
#include<iostream>
using namespace std;
template <class T> //通用调用函数定义 或者 template<typename T>
T max(T a,T b,T c)
{
if(a>b)
{
b=a;
}
if(c>b)
{
b=c;
}
return b;
}
int main()
{
int a,b,c,I;
float f1,f2,f3,F;
long l1,l2,l3,L;
cin>>a>>b>>c;
cin>>f1>>f2>>f3;
cin>>l1>>l2>>l3;
I=max(a,b,c);
F=max(f1,f2,f3);
L=max(l1,l2,l3);
cout<<"整形的最大值:"<<I<<endl;
cout<<"浮点型的最大值:"<<F<<endl;
cout<<"长整型的最大值:"<<L<<endl;
return 0;
}
函数模板定义的一般形式为temple<typename T> 或者 temple<class T>
temple的含义是“模板”,尖括号中险些type或者class,后面跟上一个类型 T ,这个参数类型实际上是虚拟类型,如样例中不同类型进行调用时 T 被赋予成不同的类型,其中类型参数不止一个,根据需要确定的个数如:
template<class T1,class T2>
这样使重载更简洁,但是它只试用参数个数都相同而类型不同的情况,如果参数个数不同不能应用函数模板