c语言,对重载函数调用符的调用不明确是什么意思,怎么解决、

error&C2668:&“sqrt”:&对重载函数的调用不明确
(12) : error C2668: “sqrt”: 对重载函数的调用不明确
c:\program files\microsoft visual studio
9.0\vc\include\math.h(581): 可能是“long double sqrt(long
c:\program files\microsoft visual studio
9.0\vc\include\math.h(533):
“float sqrt(float)”
c:\program files\microsoft visual studio
9.0\vc\include\math.h(128):
“double sqrt(double)”
对于这个问题在VC6上没有问题,在VS.net中应该改为
把k=(double)sqrt((int)a);
改成k=(double)sqrt((double)a);
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。欢迎加入我们,一同切磋技术 &
用户名: &&&
密 码: &
共有 535 人关注过本帖
标题:为什么sqrt(3)会报错说重载函数的调用不明确
等 级:论坛游侠
帖 子:44
专家分:142
结帖率:100%
&&问题点数:0&&回复次数:8&&&
为什么sqrt(3)会报错说重载函数的调用不明确
改为sqrt(3.0)就可以了。但是3到3.0不会自动转换吗?
等 级:版主
威 望:31
帖 子:1622
专家分:2968
这是不会的。
如我定义一下:
打印a,printf(&%f&,a);得到的结果不是0.8而是0。把4改成4.0或把5改成5.0才能得到正确的结果。
等 级:论坛游侠
帖 子:44
专家分:142
回复 2楼 ehszt
你说的我知道,但是和我说的问题好像不一样吧。。。
c语言里的类型转换,不是很懂。
等 级:版主
威 望:31
帖 子:1622
专家分:2968
回复 3楼 cpxuvs
针对你的问题我刚才试了一下,没你说的情况。
请贴出现问题的源代码。
等 级:版主
威 望:236
帖 子:5508
专家分:30856
估计你用的不是C,而是C++
对c++而言,编译器不知道你是想调用 sqrt( double ) 还是 sqrt( float )
等 级:论坛游侠
帖 子:44
专家分:142
回复 4楼 ehszt
其他的我都注释了。
不过我保存的是.cpp。
附件: 您没有浏览附件的权限,请
等 级:论坛游侠
帖 子:44
专家分:142
我看了一下报错信息,是不能确定float sqrt(float) 还是double sqrt(double)。。。
等 级:版主
威 望:31
帖 子:1622
专家分:2968
回复 6楼 cpxuvs
我用的是dev c++,也保存的是cpp不过没你说的问题。
附件: 您没有浏览附件的权限,请
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
编译器的的原因,很多编译器能正常通过,少数不行,也不排除.c和.cpp之间的区别(现在看来这个可能性较小)。
你只要知道sqrt()里的参数是浮点型,使用的时候注意点,人工强制转换。
版权所有,并保留所有权利。
Powered by , Processed in 0.071182 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved“sqrt”: 对重载函数的调用不明确:急急急,应该怎么修改~~【c语言吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:578,126贴子:
“sqrt”: 对重载函数的调用不明确:急急急,应该怎么修改~~收藏
#include "stdafx.h"#include &math.h&int _tmain(int argc, _TCHAR* argv[]){&&&&&&&&&&&& long int x,&&&& for(a=1;a&=100000;a++)&&&& {&&&&&&&& x=sqrt(100+a);&&&&&&&& y=sqrt(100+168+a);&&&&&&&& if(x*x==100+a && y*y==268+a)&&&&&&&&&&&& printf("%ld",a);&&&&&&&& }&&&& return 0;}
额··不知道楼主认为重载是个什么概念~~似乎C语言中并没有的~C++中才有函数重载的概念。。。
回复:2楼诶,那就奇怪了哦~~
文件后缀是cpp,然后编译器就当是cpp了~强制转换一下sqrt里面的数据类型在这个问题上就OK了
回复:4楼恩恩,可以了,谢谢哦~·
回复:4楼CPP后缀名··默认是当做C++的语法规范编译了。。。在C语言里··还是不要这样吧。。容易搞混的·
把数据换成浮点型
sqrt 函数的原型是 double sqrt(double), 所以两边的数据必须是double型的
登录百度帐号没有更多推荐了,
不良信息举报
举报内容:
【C++所遇】“pow”: 对重载函数的调用不明确
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!没有更多推荐了,
不良信息举报
举报内容:
类的对重载函数的调用不明确
举报原因:
原文地址:
原因补充:
最多只允许输入30个字
加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!

我要回帖

更多关于 对重载函数调用不明确 的文章

 

随机推荐