#include<iostream>usingnamespace std;//普通函数调用和发生隐式类型转换//函数模板用自动类型推导,不可以发生隐式类型转换//函数模板用显示指定类型,可以发生隐式类型转换intmyadd1(int a,int b){return a + b;}//函数模板template<classT>
T myadd2(T a, T b){return a + b;}voidtest01(){int a =10;int b =20;char c ='a';
cout <<myadd1(a, c)<< endl;
cout <<myadd2(a, b)<< endl;//cout << myadd2(a, c) << endl;//显示指定类型
cout <<myadd2<int>(a, c)<< endl;}intmain(){test01();system("pause");return0;}
1.2.3函数模板
#include<iostream>usingnamespace std;/*
实现通用 对数据进行排序的函数
规则 从大到小
算法 选择
测试 char数组,int数组
*/template<classT>voidmyswap(T&a,T&b){
T temp = a;
a = b;
b = temp;}template<typenameT>voidmysort(T&arr[],int len){for(int i =0; i < len; i++){int max = i;for(int j = i +1; j < len; j++){if(arr[max]< arr[j]){
max = j;}}if(max != i){myswap(arr[max], arr[i]);}}}voidtest01(){char chararr[]="abcdfg";int num =sizeof(chararr)/sizeof(char);mysort(chararr, num);}intmain(){system("pause");return0;}