标题:函数模版的问题——编译出错
只看楼主
zys4416
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-2-10
 问题点数:0 回复次数:4 
函数模版的问题——编译出错
我写了以下函数模版的小练习,不过用Dec-C++编译出错,提示:call of overloaded `max(int&, int&)' is ambiguous。
不过用VC++编译确通过。
怎么一回事哪~?

程序代码:
#include<iostream>
using namespace std;

template<typename T>

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

int main()
{
    int a=2,b=3;
    float i=2.4,j=3.2;

    cout<<max(a,b)<<endl;
    cout<<max(i,j)<<endl;
    
    return 0;
}
搜索更多相关主题的帖子: 模版 函数 编译 
2008-10-19 09:14
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
说是二义性...
但我用VC却通过了...
没看出什么问题...

2008-10-19 09:26
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
得分:0 
overloaded `max(int&, int&)'
是不是和标准库冲突了?

学习需要安静。。海盗要重新来过。。
2008-10-19 09:41
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
得分:0 
[bo][un]sunkaidong[/un] 在 2008-10-19 09:41 的发言:[/bo]

overloaded `max(int&, int&)'
是不是和标准库冲突了?

嗯,果然改了名字就通过了...
不明白VC为什么不改也能过.....

2008-10-19 10:03
zys4416
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2006-2-10
得分:0 
加&不就是引用吗?为什么要这样……

学途漫漫而修远,为何行?心自明,只求点滴收获,积米成山,既成、无憾矣。     -zys
2008-10-19 17:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-239135-1-1.html




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

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