2013-07-08 14:42:45

当使用的函数时重载函数时,若编译器不能判断出是哪个函数,就会出现二义性,并给出报错信息。

问题描述:

在.cpp代码中用到pow函数,如下:

long int MaxInteger = pow( 2,8*sizeof(long int) -1 );

编译,报错为:

error C2668: 'pow' : ambiguous call to overloaded function

error C2668: 'pow' : ambiguous call to overloaded function
1>          d:\program files\microsoft visual studio 10.0\vc\include\math.h(583): could be 'long double pow(long double,int)'
1>          d:\program files\microsoft visual studio 10.0\vc\include\math.h(581): or       'long double pow(long double,long double)'
1>          d:\program files\microsoft visual studio 10.0\vc\include\math.h(535): or       'float pow(float,int)'
1>          d:\program files\microsoft visual studio 10.0\vc\include\math.h(533): or       'float pow(float,float)'
1>          d:\program files\microsoft visual studio 10.0\vc\include\math.h(497): or       'double pow(double,int)'
1>          d:\program files\microsoft visual studio 10.0\vc\include\math.h(122): or       'double pow(double,double)'

根据给出的信息,可知pow函数有6种重载函数,编译器根据给定的参数不能判断代码中使用的是哪个函数,因此报错。

解决办法:

可通过指定参数的类型解决,如下:

MaxInteger = (long int) pow( (float)2,(int)( 8*sizeof(long int) - 1 ) )

这样,编译器就直达是要用'long double pow(long double,int)'这个函数了。

转载于:https://www.cnblogs.com/youngforever/p/3177921.html

函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function相关推荐

  1. C++的error C2668: 'pow' : ambiguous call to overloaded function错误原因及解决方法

    1.错误代码 #include <iostream> #include <cmath>using namespace std;int main() {float a;a = p ...

  2. C++三角函数用法错误error C2668: 'tan' : ambiguous call to overloaded function原因及解决方法

    注意tan.atan等三角函数不能接受整数,如:tan(1)会报错"error C2668: 'tan' : ambiguous call to overloaded function&qu ...

  3. error C2668: ‘abs‘ : ambiguous call to overloaded function

    if (abs (dwRet - 2048000) <= 16000) 改成 if (abs ((long)(dwRet - 2048000)) <= 16000)

  4. QOpenGl报错:QOpenGLShader::compile(Fragment): ERROR: 3:6: ‘texture‘ : no matching overloaded function

    最近因为工作所需,需要采用GPU绘制视频,那么就需要学习OpenGL了: 在学习纹理时,接触的第一个例子是<霍亚飞-Qt Creator快速入门_第三版>中第12章-12.4-使用纹理绘图 ...

  5. ambiguous reference to overloaded definition(scala与java重载逻辑不匹配)

    0.美图 1.问题 Error:(108, 47) ambiguous reference to overloaded definition, both method toJSONString in ...

  6. 函数重载导致的二义性

    函数重载主要是一个匹配问题,分为精准匹配,提升匹配和类型转换匹配三种: 精准匹配 #include<iostream> #include "string.h" usin ...

  7. error C2668

    error C2668: "sqrt": 对重载函数的调用不明确 解决方案: if ( sqrt(dx*dx + dy*dy )< currentCircleRadius) ...

  8. 利用函数重载编写函数max_彻底理清重载函数匹配

    今日分享:直者内不以自欺,外不以欺人,心有所好恶而如其实以出之者也.--<中国哲学史> 前言 前面我们讲到了<什么是函数重载?>,有了函数重载之后,就需要确定某次调用需要选用哪 ...

  9. C++函数重载的概念

    C++函数重载的概念 重载的起源 自然语言中,一个词可以有许多不同的含义,即该词被重载了.人们可以通过上下文来判断该词到底是哪种含义."词的重载"可以使语言更加简练.例如" ...

最新文章

  1. Spring中的这些坑,99%的程序员都踩过
  2. oracle 数据分析函数,ORACLE分析函数(一)
  3. jquery技巧(持续更新。。)
  4. Android 4.0 Launcher源码分析系列(二)
  5. Mac os + Flask + PyCharm python开发环境集成
  6. EOS Keosd概述
  7. python自动化办公选择题_Python +Selenium 自动化 css练习题
  8. dpl直播源_上千个高清无码直播源,爽歪歪!
  9. mariadb 存储引擎mysql_MySQL/MariaDB---查询缓存与存储引擎
  10. 快快编程kkcoding/太戈编程Tiger AI答案库 (每月更新)第三期 答案仅供参考,不能保证100%的准确性
  11. KPEG123压电蜂鸣器驱动电路
  12. SV学习(9)——随机函数、数组约束、随机控制
  13. es中索引对象包含数组子节点时, 查询和聚合的统计需要注意的问题。
  14. Python 内建函数 - complex([real[, imag]])
  15. 数据库添加账号(mongoDB)
  16. python调用大漠多线程_大漠插件多线程绑定窗口登录游戏、程序全停、单停、恢复...
  17. 风控策略和模型的区别_风控策略
  18. 知识型员工的普遍特点(摘录)
  19. Unity变换矩阵之如何构建变换矩阵
  20. CTFshow_web入门_文件包含

热门文章

  1. html一个空格多少像素,一个空格占几个字符?
  2. 在oracle数据库中显示异常,Oracle数据库出现ORA-01034错误的解决方案
  3. arm中断保护和恢复_嵌入式ARM系统异常和中断处理知识总结
  4. 卸载cuda_NVIDIA驱动和CUDA安装
  5. rsync android app,如何rsync到android
  6. 单选按钮带文字_一分钟教会你用Word添加单选框和复选框
  7. C/C++课程设计 之学生管理系统(一)
  8. 不使用session,借助redis实现验证码
  9. matlab中如何调用gpu进行并行计算_极致安卓-Termux/Aid learning开启WebGL手机GPU并行计算...
  10. php 高效判断是否登录,php 判断用户是否登录