模板函数:
函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计。它的最大特点是把函数使用的数据类型作为参数。是通用函数的描述,泛型定义函数。需注意的是,模板函数不创建任何函数,只是告诉编译器如何编译。也就是说模板函数本身不占任何空间,只有定义了特定类型后才需空间储存这个函数。
为什么使用模板函数:
当使用不同类型参数函数时,能够节省时间修改函数,而且不用手工修改,可靠。当需要多个将同一算法用于不同类型的函数时,模板函数为最好的选择。
声明和使用:
eg.
template <typename AnyType>
void Swap(AnyType &a, AnyType &b)
{
AnyType temp;
temp = a;
a = b;
b = temp;
}
关键字为template和typename(也可以用class)。至于AnyType是表示任何数据类型,由程序员按c++命名规则命名。
重载函数模板:
与普通函数重载相同,也是函数特征值必不同。
eg./*
以下这个例子说明了重载函数模板,程序员可以通过传的参数不同来选择调用交换元素或是交换数组的函数。
而这个例子还说明了另一个问题,看交换数组的函数参数,最后有个int n,这个是指定的具体类型。
*/
template<typename T