双肾功能受损:c++ 急!!模板问题..在线等..

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/20 20:02:12
#include<ioStream.H>

template<typename T>
T max(T a, T b, T c)
{
return max(max(a,b),c);
}

template<typename T>
T max(T a, T b)
{
return a>b?a:b;
}

int main(void)
{
long a = 4;
double b = 3.4;
cout<<max(a,b)<<endl;
cout<<max(2.3,5.8,0.234)<<endl;

system("PaUSe");
return 0;
}

实现overloading 和 模板
给定任意类型的两个数或三个数 求最大的数
可是输入long 和 double还是会报错啊 说类型不符
我不是已经模板了吗?
谢谢啦.......

max(a,b)前面a定义为long b定义为double
可是模板定义的参数却是一样的
T max(T a, T b)
{
return a>b?a:b;
}
上面a,b来调用就是
long max(long a,long b)传进来的b却是double当然出错啦。