函数模板:
将数据类型也参数化,使用于各种类型的来调用相同功能的函数。这样的编程称之为泛型编程
template<typename(class) T>
返回类型 func(参数列表){}
环境是win10 devc++,编译器自带有swap()函数,写的时候尽量避免重名,不然会报错:函数调用模棱两可。
不同的函数类型,编译器会产生不同的函数。编译器会对模板函数编译两次,第一次对模板函数进行编译,包括语法检查。第二次对替换数据类型的函数进行编译,和普通函数一样进行类型规则检查。
多参数类型的函数模板无法进行类型自动推导,可以从左往右指定部分类型。
函数模板也可以重载
重载的规定为:优先重载普通函数,不能满足再重载函数模板,根据参数的个数和类型选择对应的函数模板。