C++泛型编程
一.函数模板 函数模板定义: template<typename | class T> 注:不允许templat语句和函数模板之间有任何其他语句 函数模板的类型参数可以不止一个 template<typename T1,typename T2,typename T3> 适用情况:函数参数个数相同而类型不同 模板参数的匹配问题 1.强制转换 cout<<Max ( double(2) ,2.3)<<endl; 2.通过<>指定类型 cout<<Max<double>(2,2.3)<<endl; 3.指定多个模板参数 template< typename T1, typename T2> 模板形参表――非类型参数 注:函数调用 Func(a,10); 函数模板重载:函数名相同,参数的个数或者类型不同 目的:有些数据类型存在盲点,无法正确运算,例如字符串类型的数据比较大小必须得用strcmp函数,否则就会变成地址的比较 template<typename T> T Max(T x,T y) {return x>y?x:y;} char *Max(char *s1,char *s2) {return strcmp(x,y)>0?x:y} 例:求两个数,三个数和一组数的最大值 #include<iostream> using namespace std; template<typename