c++小疑问

passself 2013-11-07 09:04:00

#include<iostream>

using namespace std;

template<class T>
T max(T x,T y){return (x>y)?x:y;}

int main(){
int x = 10, y = 20;
float x1 = 10.3, y1 = 3.7;
double x2 = 12.99, y2 = 66.22;
cout<<"the max of x,y is:"<<max(x,y)<<"\n";
cout<<"the max of x,y is:"<<max<int>(x,y)<<"\n";
cout<<"the max of x1,y1 is:"<<max<float>(x1,y1)<<"\n";
cout<<"the max of x2,y2 is:"<<max<double>(x2,y2)<<"\n";

return 0;
}

初学c++请各位给予指教,错误是"对重载函数的调用不明确"
...全文
246 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
alga_1 2014-03-20
  • 打赏
  • 举报
回复
在max前加上::
不要做咸鱼 2014-03-18
  • 打赏
  • 举报
回复
引用 9 楼 u012421456 的回复:
lz的代码在VS2012上有错误,但在VC6.0下没错误——
你把max换成max2试试
百曉生 2014-03-18
  • 打赏
  • 举报
回复
lz的代码在VS2012上有错误,但在VC6.0下没错误——
Adol1111 2014-03-18
  • 打赏
  • 举报
回复
引用 6 楼 lieri111 的回复:
[quote=引用 5 楼 Adol1111 的回复:] 把using namespace std;改成using std::cout; 尽量不要把std全部引入,用多少引入多少。
如何用多少就引多少?[/quote] 其实可以用两种方式: 1、给using namespace std;加作用域,比如:
int main(){
using namespace std;
……
}
2、比如只用cout就using std::cout
passself 2014-03-17
  • 打赏
  • 举报
回复
引用 5 楼 Adol1111 的回复:
把using namespace std;改成using std::cout; 尽量不要把std全部引入,用多少引入多少。
如何用多少就引多少?
Pump天天学习 2014-03-17
  • 打赏
  • 举报
回复
引用 6 楼 lieri111 的回复:
[quote=引用 5 楼 Adol1111 的回复:] 把using namespace std;改成using std::cout; 尽量不要把std全部引入,用多少引入多少。
如何用多少就引多少?[/quote] 比如 要用cout 就using std::cout 要用map 就using std::map 而不是using namespace std一口气全引用下来
dyw 2013-11-08
  • 打赏
  • 举报
回复
建议下次直接将编译器给的完整信息贴出。
Adol1111 2013-11-08
  • 打赏
  • 举报
回复
把using namespace std;改成using std::cout; 尽量不要把std全部引入,用多少引入多少。
灯塔引路 2013-11-07
  • 打赏
  • 举报
回复
这应该没什么问题,这只是一个简单的模板函数
lunat 2013-11-07
  • 打赏
  • 举报
回复
跟std::max冲突。
Vegertar 2013-11-07
  • 打赏
  • 举报
回复
STL已经定义了max

64,642

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧