模板也无法满足我的要求?
写一个函数,传入两个参数,返回较大者
template <typename T1,typename T2>
? max(T1 a,T2 b) //问号处该怎么写呢?
{
return a> b?a:b;
}
函数的返回类型跟较大数是一样的
比如:
max(3,5.74);//返回double型的5.74
max(6,3.14);//返回int型的6
[解决办法]
template <typename T>
T & max(T & a,T & b)
{
return a> b?a:b;
}
-------------------------------
显然 a 和 b 应该是同类型,
不同类型或者自定义类型你就得定义重载 operator >
你举的两个例子,max(3,5.74); 与 max(3.0,5.74)没什么差别,后者习惯更好些.
你的问题来自于你的不良好编程习惯.
[解决办法]
这个啊,用宏#define max(a, b) ((a) > (b) ? (a) : (b))
可以google alexandr的《再谈Min 和Max》