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

对重载函数的调用不明确,如图_c++吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:302,114贴子:
对重载函数的调用不明确,如图收藏
这是怎么回事啊,我的默认构造重载函数声明有问题么?跪求大神,??
c++,博为峰软件培训免费试听,0元入学,签署就业保障协议,不就业不收费!博为峰,真正的为年轻人服务的企业,14年间培训15万余名软件工程师,成绩斐然!
我找到问题所在了,为啥我那里不能有默认值?
void f(){}void f(int i=5){}那么你认为f()应该调用哪一个?
应该调用默认吧,但是f(4)的话应该是重载构造函数,不过按理应该没问题才对的,毕竟一个没有形参,一个有形参啊
看看传入的参数呢
你都默认参数值了你觉得应该调用谁
登录百度帐号当前位置:
error C2668: “abs”: 对重载函数的调用不明确,请问这个问题怎么解决啊?
error C2668: “abs”: 对重载函数的调用不明确,请问这个问题怎么解决啊?
来源:网络整理&&&&&时间: 17:12:37&&&&&关键词:
关于网友提出的“ error C2668: “abs”: 对重载函数的调用不明确,请问这个问题怎么解决啊?”问题疑问,本网通过在网上对“ error C2668: “abs”: 对重载函数的调用不明确,请问这个问题怎么解决啊?”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: error C2668: “abs”: 对重载函数的调用不明确,请问这个问题怎么解决啊?
描述:for&(int&j&=&0;&j&&&3;&j++)
Dvalue[j]&=&abs(number[j]-inpnum);
}解决方案1:
把类型明确了就成吧。
Dvalue[j]&=&abs((int)(number[j]&-&inpnum));
或者,把number和inpnum定义成相同类型
提供的代码中没有看到这些数据的定义呢。
以上介绍了“ error C2668: “abs”: 对重载函数的调用不明确,请问这个问题怎么解决啊?”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/3636637.html
上一篇: 下一篇:总是说我对重载函数pow调用不明确,我该怎么改?(题目是输出0到输入整数之间的所有2的乘方)
#include &stdio.h&#include &math.h& int main (){
unsigned long value=0;//2的n次方的值 size_t number_pow=0;//指数幂 printf("请输入一个正整数:"); scanf("%1d",&num); while (value&=num)
//2的n次方大于number时循环停止 {
value=pow(2,number_pow++);
//调用数学函数pow
if (value&num)
printf("小于%1d的所有2的乘方为%1d \n",num,value);
} } return 0;}
pow的函数原型为double pow(double x,double y);所以楼主定义的num应该为double类型,返回值可以强制转换为long unsigned int 类型(即unsigned long类型),然后输出结果,输出double类型的格式化输出符号为“%lf”,unsigned long 类型格式化输出符号为“%ld”,这里我发现楼主写的是“%1d”。
下面代码是我根据楼主的代码稍微做了一下修改,已经用调试运行过。源代码:#include &stdio.h&
#include &math.h&
int main ()
unsigned long value=0;//2的n次方的值
size_t number_pow=0;//指数幂
printf("请输入一个正整数:");
scanf("%lf",&num);
while (value&=num)
//2的n次方大于number时循环停止
value=(long unsigned int)pow(2,number_pow++);
//调用数学函数pow
if (value&num)
printf("小于%.0lf的2的乘方有%ld \n",num,value);
}运行结果:
你还没有登录,请先登录或注册慕课网帐号
24802人关注
14528人关注
Copyright (C) 2018 imooc.com All Rights Reserved | 京ICP备 号-11已解决问题
c里面为什么添加了math却不能用sqrt函数,提示:对重载函数的调用不明确??
这是我写的代码 我是初学 请解释详细点 谢谢#include &stdafx.h&#include&math.h&#include&stdio.h&void main( ){
void ss(int i); scanf(&%d&,&sh); ss(sh);}void
ss(int i){
int m =sqrt(i);
for(n=2;n&=m;n++) {
if(i%n==0)
printf(&是素数&);
printf(&不是素数&);
浏览次数:2176
用手机阿里扫一扫
最满意答案
int&m&=sqrt((double)i);C语言是没有重载的,C++才有,你应该是用C++的编译器来写C语言吧在C++中sqrt有两个重载函数,一个参数是double,另一个是float由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个。用强制的类型转换可以解决这个问题。
答案创立者
以企业身份回答&
正在进行的活动
生意经不允许发广告,违者直接删除
复制问题或回答,一经发现,拉黑7天
快速解决你的电商难题
店铺优化排查提升2倍流量
擅长&nbsp 店铺优化
您可能有同感的问题
扫一扫用手机阿里看生意经
问题排行榜
当前问题的答案已经被保护,只有知县(三级)以上的用户可以编辑!写下您的建议,管理员会及时与您联络!
server is ok编译时说sqrt对重载函数调用不明确,为什么?_百度知道
编译时说sqrt对重载函数调用不明确,为什么?
假如原先是这样的:if (sqrt((x0-tx)*(x0-tx)+(y0-ty)*(y0-ty))&r0) //其中参数都是int。运行程序时出现下述错误:error C2668: “sqrt”: 对重载函数的调用不明确。1& & & & &d:\vs2010\vc\include\math.h(581): 可能是“long double sqrt(long double)”1& & & & &d:\vs2010\vc\include\math.h(533): 或 & & & “float sqrt(float)”1& & & & &d:\vs2010\vc\include\math.h(128): 或 & & & “double sqrt(double)”1& & & & &试图匹配参数列表“(int)”时原因是程序从VC6.0转到VS.net更高版本上运行,因为VS.net要求的更精确而造成了报错。修改:在math.h中&sqrt&有三种类型 :long double sqrt(long double ),float sqrt(float),double sqrt(double),所以任选一种对你的应用精度较好的参数和返回值类型,如float sqrt(float),将上述if (sqrt((x0-tx)*(x0-tx)+(y0-ty)*(y0-ty))&r0)修改为:if ((float sqrt((x0-tx)*(x0-tx)+(y0-ty)*(y0-ty)))&r0)即可(运行成功)
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

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

 

随机推荐