函数模板可以用来创建一个通用的函数,以支持多种不同形参,避免重载函数的函数体重复设计。它的最大的特点就是吧函数实用的数据类型作为参数。
定义的一般形式:
template <class 数据类型参数标示符>
函数返回值类型 函数名(参数表)
{
函数体
}
例如:
templat <class T1,class T2>
T1 fun(T1 a,T2 b)
{ T2=d;
、、、、、、
}
如果主调函数中有:
int x; double y;
、、、、
fun(x,y);
则系统将用实参x的数据类型int和y的数据类型double的代替函数模板中的T1和T2,生成模板函数
int fun(int a,double b)
{ double d;
、、、、
}
# include <iostream.h>
# include <string.h>
template <class T>
T min(T a,T b)
{ return (a<b?a:b) ; }
char * min(char*a,char *b)
{ return (strcmp(a,b)<0?a:b); }
void main()
{ cout<<min(3,-10)<<endl;
cout<<min(2.5,99.5)<<endl;
cout<<min('m','f')<<endl;
char *str1="The C program ",*str2="The C++ program";
cout<<min(str1,str2)<<endl;
}