gpt4 book ai didi

c++ - 为什么重载 area 函数时以下代码会出现歧义

转载 作者:行者123 更新时间:2023-11-30 03:16:15 24 4
gpt4 key购买 nike

我重载了区域函数。像这样 float 区域(int v,int u); float 区域(float r,float s);然后我用参数 2.3,4.4 调用了 area 函数但显示错误重载“area(double, double)”的调用不明确但我不明白是什么原因导致歧义,因为这里很明显2.3和4.4是float类型然后调用area的第二个版本 float 区域(float r,float 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;
}

最佳答案

area调用中的参数是double类型,不是float类型。编译器无法决定是否应将它们转换为 float 或 int。以下将按预期工作:

cout << area(2.3f,4.4f);

在这种情况下,传递给 area 的值是 float ,而不是 double 值。

关于c++ - 为什么重载 area 函数时以下代码会出现歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56505392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com