为什么调用两次,只输出一次???max(1,2)没反应.

butnet 2009-05-01 11:14:54

#include <iostream>
using namespace std;

void max(float,float);

int main() {
max(1,2);
max(1.0f,1.0f);
return 0;
}

void max(float x,float y){
cout<<"max(float,float)"<<endl;
}
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
butnet 2009-05-01
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 tangshuiling 的回复:]
引用 7 楼 butnet 的回复:
引用 4 楼 tangshuiling 的回复:
C/C++ code如果楼主用的是vs2005编译器,需更改函数名,否则,第一次调用了名称空间
的std::max函数


确实是你说的这种情况,
但为什么第两次 会调用我自己的函数
我看std::max是一个模板方法,
它他也应该支持float

还有我没有用max <int>(1,2)调用模板
它为什么调模板
而float不调用

楼主知不知道重载函数有个概念叫最优匹配,如果不懂建议看看相关…
[/Quote]

谢谢
tangshuiling 2009-05-01
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 butnet 的回复:]
引用 4 楼 tangshuiling 的回复:
C/C++ code如果楼主用的是vs2005编译器,需更改函数名,否则,第一次调用了名称空间
的std::max函数


确实是你说的这种情况,
但为什么第两次 会调用我自己的函数
我看std::max是一个模板方法,
它他也应该支持float

还有我没有用max <int>(1,2)调用模板
它为什么调模板
而float不调用
[/Quote]
楼主知不知道重载函数有个概念叫最优匹配,如果不懂建议看看相关的理论部分,同时建议函数取名最后不与库或名称
空间的函数同名
butnet 2009-05-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tangshuiling 的回复:]
C/C++ code如果楼主用的是vs2005编译器,需更改函数名,否则,第一次调用了名称空间
的std::max函数
[/Quote]

确实是你说的这种情况,
但为什么第两次 会调用我自己的函数
我看std::max是一个模板方法,
它他也应该支持float

还有我没有用max<int>(1,2)调用模板
它为什么调模板
而float不调用
  • 打赏
  • 举报
回复
测试完,肯定是2次啊。
如果是编译器的原因,你看下是不是如4楼说的编译器。
butnet 2009-05-01
  • 打赏
  • 举报
回复
你是什么编译器?
我用GCC 3.4.5 和 VS2005都只有一行
tangshuiling 2009-05-01
  • 打赏
  • 举报
回复

如果楼主用的是vs2005编译器,需更改函数名,否则,第一次调用了名称空间
的std::max函数
Pikoona 2009-05-01
  • 打赏
  • 举报
回复

在我的机器上是输出两次,输出如下:

max(float,float)
max(float,float)
Press any key to continue
butnet 2009-05-01
  • 打赏
  • 举报
回复
max(1,2);
max(1.0f,1.0f);

应该是输出
max(float,float)
max(float,float)
两行噻,
怎么会只有一行呢?
lingyin55 2009-05-01
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;

void max(float,float);

int main() {
max(1,2);
max(1.0f,1.0f);
return 0;
}

void max(float x,float y){
////cout<<"max(float,float)"<<endl;////只是输出一个字符串
}

64,649

社区成员

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

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