1 #include2 using namespace std; 3 template 4 T Min(T a,T b) 5 { 6 return (a < b)?a:b; 7 } 8 9 int main()10 {11 double a = 2,b = 3.4;12 float c = 2.3,d = 3.2;13 // 模板参数不匹配解决方案14 //1.调用时进行类型强制转换15 cout << "2,3.2 min is " << Min(double(2),3.2) << endl;16 cout << "a,c min is " << Min(a,double(c)) << endl;17 cout << "a,3 min is " << Min(int('a'),3) << endl;18 //2.显示指定函数模板实例化的类型参数19 cout << "-------------------->" << endl;20 cout << "2,3.2 min is " << Min (2,3.2) << endl;21 cout << "a,c min is " << Min (a,c) << endl;22 cout << "a,3 min is " << Min ('a',3) << endl;23 //3.指定多个模板参数,下一份程序写24 25 return 0;26 }
第三种解决方案:
1 #include2 using namespace std; 3 template 4 T1 Min(T1 a,T2 b) 5 { 6 return (a < b) ? a:b; 7 } 8 9 int main()10 {11 double a = 2,b = 3.4;12 float c = 2.3,d = 3.2;13 cout << "-------------------->" << endl;14 cout << "2,3.2 min is " << Min(2,3.2) << endl;15 cout << "a,c min is " << Min(a,c) << endl;16 cout << "a,3 min is " << Min('a',3) << endl;17 return 0;18 }