函数模板使用泛型来定义函数,编译时具体的类型代替泛型。模板又称为通用编程。
如果需要交换两个int,float型变量,我们可以使用函数重载,如下所示。
#include<iostream>
using namespace std;
void Exchange(int &m,int &n);
void Exchange(float &m,float &n);
int main()
{
int a=1,b=2;
Exchange(a,b);
cout<<"a="<<a<<endl;
cout<<"b="<<b<<endl;
float m=1.1,n=2.2;
Exchange(m,n);
cout<<"m="<<m<<endl;
cout<<"n="<<n<<endl;
return 0;
}
void Exchange(int &m,int &n)
{
int tem;
tem=m;
m=n;
n=tem;
}
void Exchange(float &m,float &n)
{
float tem;
tem=m;
m=n;
n=tem;
}
上述程序太冗杂,且易出错;C++允许我们使用泛型编程,对于相同的操作,可以使用函数模板。上述程序使用函数模板后如下:
#include<iostream>
using namespace std;
template<class Type>
void Exchange(Type &m,Type &n);
int main()
{
int a=1,b=2;
Exchange(a,b);
cout<<"a="<<a<<en