更新日期:2023-08-07 09:50:34
来源:互联网
浏览量:5
下面来看看小编为您整理的方法调用不明确的答案
求大神解答为什么老说我的sqrt: 对重载函数的调用不明确在线等!因为C语言中没有这样的函数定义:
int sqrt(int x) 或 double sqrt(int x)
所以如果x是整数,应该这样调用
k = (int)sqrt((double)x) ;
至于为什么,百度一下,解释很多
Java调用方法的时候怎样处理异常类型谢谢您的帮助!catch捕获异常
c里面为什么添加了math却不能用sqrt函数,提示:对重载函数的调用不明确??有偿求助!int m =sqrt((double)i);
C语言是没有重载的,C 才有,你应该是用C 的编译器来写C语言吧
在C 中sqrt有两个重载函数,一个参数是double,另一个是float
由于你传的参数是int在默认的隐式类型转换中int可以转换成float也可以转换为double,编译器就不知道你想调用哪一个。用强制的类型转换可以解决这个问题。
C 类的对重载函数的调用不明确 解释下下面的程序在线等!简单一点,rectangle a; 这个定义产生了冲突,它既可以调用 rectangle(int i=0,int j=0,int k=0)进行构造也可调用rectangle()进行构造。这两个构造函数对rectangle a;并没有优先关系,因此系统不能识别该调哪个函数。
不建议楼主的rectangle(int i=0,int j=0,int k=0)这个构造函数,这样写没多大意义,一般来说如果要使用默认的参数,只提供部分的默认参数,而不是全部提供。
用VC 编译判断素数,没有出错;而用VS2010 却提示 error C2668: sqrt: 对重载函数的调用不明确急需求解!。。。不同编译器对类型检查的严格程度不同,你直接指定具体的类型不就得了?
k=(int)sqrt((double)n);
C语言对多重函数调用不明确怎么破?谢谢您的帮助!原因:
fabs(k)有点问题。
k是整数,而
fabs()有如下几种原型:
double
fabs
(
double
x
);
float
fabs
(
float
x
);
long
double
fabs
(
long
double
x
);
因此编译器需要将k
转为double,float和long
double中的一种类型,但是有三种可能,所以编译器不知道你要的是哪一种,所以报调用不明确
解决方法:
以下三种调用皆可,其实就是显式转换数据类型
(int)fabs((double)k);
(int)fabs((float)k);
(int)fabs((long
double)k);
上述内容方法调用不明确来源于网友整理,仅供参考。提示:想了解更多方法调用不明确(调用静态方法)相关的内容,请尝试通过上方搜索框搜索。