模板函数的意义:使用通用类型来定义函数,替换具体类型(如int或double)
譬如有一个交换函数,需要交换两个数值。针对int写一个int函数,针对double写一个double函数。但是这样浪费时间;如果使用全局查找替换,则可能会出现替换错误。(如interval中int被替换)
此时模板函数可以被用来解决这个问题:(类似于重载,当然也有重载模板函数)
template <class Any>
void Swap (Any &a, Any &b)
{
Any temp;
temp=a;
a=b;
b=temp;
}
模板类:
template <class T> //声明一个模板,虚拟类型名为T。注意:这里没有分号。
class Compare //类模板名为Compare
{
public :
Compare(T a,T b)
{
x=a;y=b;
}
T max( )
{
return (x>y)?x:y;
}
T min( )
{
return (x<y)?x:y;
}
private :
T x,y;
};