//函数模板 ArrayDIY templatetypename T T MAX(T a, T b) { return a b ? a : b; } int main() { //整型 cout MAX(10, 20) endl; //浮点型 cout MAX(10.99, 2.678) endl; //字符型 cout MAX(fan, jun) endl; } //函数模板2 // 定义自定义命名空间隔离自己的swap namespace Fun { templatetypename T void swap(T a, T b) { T temp a; a b; b temp; } } int main() { int a 10, b 20; Fun::swapint(a, b); cout a \t b; } //函数模板3多个参数 templatetypename T1,typename T2 T1 MAX(T1 a, T2 b) { return a b ? a : b; } int main() { int a 10; float b 99.88; cout MAXfloat,int(b,a); } //类模板 templatetypename T class Array { T arr[5]; public: void init_arr(int index, T num) { arr[index] num; } T getnum(int index) { return arr[index]; } }; int main() { Arrayint array; array.init_arr(0, 10); cout array.getnum(0) endl; Arraystring array2; array2.init_arr(0, fan); cout array2.getnum(0); }