函数模板
函数模板使用泛型来定义函数,泛型可以用具体的int,double类型替换,用来达到缩短代码的目的.
比如,交换两个数值的函数.
声明:
template <typename T>
void swap(T & a , T & b);
实现:
template <typename T>
void swap(T & a , T & b)
{
T temp;
temp=a;
a = b;
b = temp;
}
T代表一种模板参数类型,可以按规则起名,template和typename是必不可少的,在调用函数的时候可以用int或double代替模板参数类型T.
这种函数模板的方式并没有真正缩短可执行程序,最终还是由两个独立函数完成的.
重载模板
不是所有的情况都可以用模板函数解决,比如交换两个大小相同数组中的元素,
声明如下:
template <typename T>
void swap(T * a , T * b ,int n);
定义:
template <typename T>
void swap(T * a , T * b ,int n)
{
T temp;
for (int i = 0 ; i < n ; i++)
{
temp = a[i];
a[i] = b[i];
b[i] = temp;
}
}
达到了一种重载的效果