visual c++中error C2668: 'sqrt' : ambiguous call to overloaded function 怎么办

如题所述

第1个回答  2012-10-03
你的参数不明确,重载不明确,改为sqrt(2.0);试试
第2个回答  2013-02-04
sqrt函数定义:double sqrt( double x);
换成 sqrt( (double) x )试试
第3个回答  2013-11-18
函数参数有问题,我刚试了试,参数前加个(double),妥妥的

visual c++中error C2668: 'sqrt' : ambiguous call to overloaded funct...
你的参数不明确,重载不明确,改为sqrt(2.0);试试

error C2668: 'pow' : ambiguous call to overloaded function
long double pow(long double,int)float pow(float,int)double pow(double,int)对于所给的参数int,int,编译器无法判断应该匹配哪个函数,因此报错 可以将代码改为pow(10.0,(int)i)

: error C2668: 'pow' : ambiguous call to overloaded function
参数1可以转成float或者double,但转成哪个编译器不知道如何选择 这个时候你可以强转一下解决问题,比如pow( double(2), 3 )

...ambiguous call to overloaded function),怎么改才对?
最简单的方案是将第二个构造函数的第二个形参的默认值取消,即去掉“=21”,应该说你如果希望提供默认值的话,你应该将第一个构造函数融入到第二个构造函数中去,应该说你的设计是有点问题的。报错出现的原因:因为提供了默认构造函数,那么当你调用形式为”Person(a);\/\/a是char*型”时就会出现2个...

c++ ambiguous call to overloaded function错误
将“void swap(T &x,T &y)”修改一下函数名void vSwap(T &x,T &y)就可以了。修改后的代码文件 include <iostream> using namespace std;template <class T> void Bubble(T A[],int n){ int i,k;for(k=n-1;k>=0;k++)for(i=0;i<k;i++)if(A[i]>A[i+1])vSwap(A[i],...

VC++中error C2668错误求教
应该是头文件包含重了,比如包含了不同版本ado(或者其他)库的头文件,两个库中都实现了那个函数,所以就出问题了

C2668 ambiguous call to overloaded function的问题
他说是你的重载函数无法识别 看你的LoadIconA是否是多个函数名而又未构成重载关系 检查下函数声明 给出来的代码貌似看不到LoadIconA 方便的话把你的代码发过来

...3D' : ambiguous call to overloaded function
这三个函数都是标准转换,所以一样好。你可以用转换把int类型参数static_cast<T>(x),T可以是float就行,因为它应该足够表示int了。很多VC6下可以运行的程序,到了VC2008下,都不会直接通过,因为VC2008更标准了,VC6应该说有点老了。我可以帮助你,你先设置我最佳答案后,我百度Hii教你。

...C2668: 'setdate' : ambiguous call to overloaded function...
void setdate();void setdate(int year=200,int month=5);由于第二个函数存在默认参数值,所以当你调用setdate()不传任何参数时,上面两个版本都可以调用,因此产生了歧义。注意的是,一个函数的参数行为由它的申明来确定,所以尽管你后面的函数定义:void date::setdate(int year,int month){y=year...

C++中开方出现错误
这要看什么……sqrt只有接受三种精度的浮点数的函数重载,而int转换到三种浮点数的优先级相同,所以会报有多个函数的重载形式符合要求的错误,显式指定一下k=int(sqrt ((float)m));或者k=int(sqrtf (m));就是了……

相似回答