如果需要多个将同一个算法用于不同类型的函数,请使用模版
函数模版:要让编译器知道程序需要一个特定形式的交换函数,只需在程序中使用Swap()函数即可,编译器将检查所使用的参数类型,并生成相应的函数,
1. template<typename AnyType>
void Swap(AnyType &a, AnyType&b)
{
AnyType temp;
temp = a;
a = b;
b = temp;
}
tmplate <typename T>
void Swap(T &a, T &b)
{
T temp;
temp = a;
a = b;
b = temp;
}
第一行指出,建立一个模板,并将类型命名为AnyType, 关键字template 和 typename是必须的,除非可以使用关键字class代替typename、另外。必须使用尖括号。类型名可以任意选择(这里是AnyType)。
模版并不创建任何函数,而只是告诉编译器如何定义函数,需要交换int的函数时,编译器将按模板模式创建这样的函数,并用int代替AntType,同样,需要减缓double函数时,编译器将按照模板模式创建这样的函数,并用double代替AnyType。