| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 724 人关注过本帖
标题:对重载函数的调用不明确?
只看楼主 加入收藏
Kipling
Rank: 1
来 自:惠州
等 级:新手上路
帖 子:4
专家分:0
注 册:2009-7-17
收藏
 问题点数:0 回复次数:4 
对重载函数的调用不明确?

程序代码:
#include<iostream>
using namespace std;
template <typename T>
T max(T b,T c)
{
    return b>c?b:c;
   

}
int main()
{
    int i1=185,i2=-76,i3=567,i;
    double d1=56.87,d2=90.23,d3=-3214.78,d;
    i=max(i2,i3);
    d=max(d2,d3);
    cout<<i<<' '<<d<<endl;
    system("pause");
}
此处编译出现错误,提示为对重载函数的调用不明确.
程序代码:
#include<iostream>
using namespace std;
template <typename T>
T max(T a,T b,T c)
{
    return b>c?b:c;
   

}
int main()
{
    int i1=185,i2=-76,i3=567,i;
    double d1=56.87,d2=90.23,d3=-3214.78,d;
    i=max(i1,i2,i3);
    d=max(d1,d2,d3);
    cout<<i<<' '<<d<<endl;
    system("pause");
}
是编译通过的,不明白,求解
2013-08-30 20:53
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
因为编译器不知道选STL中的std::max,还是你自己定义的::max
简而言之:重名

收到的鲜花
  • Kipling2013-08-31 18:26 送鲜花  3朵   附言:我很赞同
2013-08-31 10:21
额外覆盖
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:城市猎人
威 望:6
帖 子:1726
专家分:5757
注 册:2012-9-22
收藏
得分:0 
我试了一下,在vc++6.0里可以编译通过,但是在VS2010里就不行了
但是将max改为其他就行


[ 本帖最后由 额外覆盖 于 2013-8-31 10:26 编辑 ]
收到的鲜花
  • Kipling2013-08-31 18:26 送鲜花  3朵   附言:我很赞同

我现在所学的一切都是为了游戏!!!为了游戏,加油!加油!努力!
2013-08-31 10:23
额外覆盖
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:城市猎人
威 望:6
帖 子:1726
专家分:5757
注 册:2012-9-22
收藏
得分:0 
回复 2楼 rjsp
stl中有max这个函数啊  能给我一份资料吗?

我现在所学的一切都是为了游戏!!!为了游戏,加油!加油!努力!
2013-08-31 10:27
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
以下是引用额外覆盖在2013-8-31 10:27:17的发言:

stl中有max这个函数啊  能给我一份资料吗?

http://en.
2013-08-31 10:41
快速回复:对重载函数的调用不明确?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039900 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved