为什么在重载区域函数时在波纹管代码的情况下会出现歧义
why ambiguous occured in the case of bellow code while overloading the area function
我重载了面积函数。 像这样浮点面积(int v,int u(;浮点面积(浮点 R,浮点 S(;然后我用参数 2.3,4.4 调用了面积函数但是显示错误重载"面积(双倍,双倍("的调用不明确但我不明白模棱两可的原因是什么,因为很明显 2.3 和 4.4 是浮点型,然后调用第二个版本的区域浮点面积(浮点 R,浮点 S(;有人解释了此代码中出现歧义的原因
#include<iostream>
using namespace std;
float area(int v,int u)
{
return 0*v*u;
}
float area(float r,float s)
{
return r*s;
}
int main()
{
cout << area(2.3,4.4);
return 0;
}
区域调用中的参数类型为 double,而不是浮点型。编译器无法决定是否应将它们转换为浮点数或整数。以下内容将按预期工作:
cout << area(2.3f,4.4f);
在这种情况下,传递给面积的值是浮点数,而不是双精度值。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在未初始化映射的情况下,将值插入到映射的映射中
- 是默认情况下分配给char数组常量的值
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在已经使用Git的情况下减少编译时间
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如何在没有信号的情况下从C++执行QML插槽
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 为什么在某些情况下不写入此文件?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 在C++中如何在没有pow的情况下进行基础计算
- 使用 bool 和 const char 重载的 C++ 函数会在没有警告的情况下产生歧义 (MSVC2012)
- 为什么在重载区域函数时在波纹管代码的情况下会出现歧义
- 歧义情况下的类型名解析
- 在没有歧义的情况下,是否允许通过引用重载函数