首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

模板也无法满足小弟我的要求

2012-02-10 
模板也无法满足我的要求?写一个函数,传入两个参数,返回较大者template typenameT1,typenameT2?max(T1a,T

模板也无法满足我的要求?
写一个函数,传入两个参数,返回较大者
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》

热点排行