//函数模板 Array<DIY> template<typename 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 { template<typename T> void swap(T& a, T& b) { T temp = a; a = b; b = temp; } } int main() { int a = 10, b = 20; Fun::swap<int>(a, b); cout << a << "\t" << b; } //函数模板3,多个参数 template<typename T1,typename T2> T1 MAX(T1 a, T2 b) { return a > b ? a : b; } int main() { int a = 10; float b = 99.88; cout << MAX<float,int>(b,a); } //类模板 template<typename 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() { Array<int> array; array.init_arr(0, 10); cout << array.getnum(0) << endl; Array<string> array2; array2.init_arr(0, "fan"); cout << array2.getnum(0); }