当前位置: 首页 > 游戏攻略 > 方法调用不明确(调用静态方法)

方法调用不明确(调用静态方法)

更新日期: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);

上述内容方法调用不明确来源于网友整理,仅供参考。

    提示:想了解更多方法调用不明确(调用静态方法)相关的内容,请尝试通过上方搜索框搜索。


    相关资讯