下面的程序编译是老是出现error C2668: 'max' : ambiguous call to overloaded function怎么回事?
#include<iostream>usingnamespacestd;intmax(intnum_1=5,intnum_2=6,intnum_3=7){if(num_1...
#include<iostream>
using namespace std;
int max (int num_1=5,int num_2=6,int num_3=7)
{
if (num_1>num_3)
num_3=num_1;
if (num_2>num_3)
num_3=num_2;
return num_3;
}
int max (int num_1,int num_2)
{
if(num_1>num_2)
return num_1;
else
return num_2;
}
int main()
{
int in_num1=3,in_num2=12,in_num3=5;
cout<<"max_3="<<max(in_num1,in_num2,in_num3)<<endl;
cout<<"max_2="<<max(in_num1,in_num2)<<endl;
return 0;
}这个哪里错了??帮看看 展开
using namespace std;
int max (int num_1=5,int num_2=6,int num_3=7)
{
if (num_1>num_3)
num_3=num_1;
if (num_2>num_3)
num_3=num_2;
return num_3;
}
int max (int num_1,int num_2)
{
if(num_1>num_2)
return num_1;
else
return num_2;
}
int main()
{
int in_num1=3,in_num2=12,in_num3=5;
cout<<"max_3="<<max(in_num1,in_num2,in_num3)<<endl;
cout<<"max_2="<<max(in_num1,in_num2)<<endl;
return 0;
}这个哪里错了??帮看看 展开
1个回答
推荐于2016-07-31 · 知道合伙人软件行家
关注
展开全部
系统有一个 max() // 三个参数的函数
template<typename _Tp, typename _Compare>
inline const _Tp&
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
{
//return __comp(__a, __b) ? __b : __a;
if (__comp(__a, __b))
return __b;
return __a;
}
int max3 (int num_1=5,int num_2=6,int num_3=7) // 可以换个名字,比如max3
template<typename _Tp, typename _Compare>
inline const _Tp&
max(const _Tp& __a, const _Tp& __b, _Compare __comp)
{
//return __comp(__a, __b) ? __b : __a;
if (__comp(__a, __b))
return __b;
return __a;
}
int max3 (int num_1=5,int num_2=6,int num_3=7) // 可以换个名字,比如max3
追问
函数重载不是可以重名的吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询