gpt4 book ai didi

c++ - 我在程序中找不到歧义,但编译器说 check(int) 和 check(float) 之间存在歧义

转载 作者:行者123 更新时间:2023-11-30 01:55:17 25 4
gpt4 key购买 nike

#include<iostream.h>
#include<conio.h>
void check(int);
void check(float b);
void main()
{
clrscr();
check(10);
check(2.5);
getch();
}
void check(int c)
{
cout<<c;
}
void check(float b)
{
cout<<b;
}

我定义了两个名为 check 的函数,一个以整数为参数,另一个以 float 为参数。当我编译程序时,编译器发现这两个函数之间存在歧义。我无法想象这个案子。谁能帮帮我?

最佳答案

2.5 的类型为 double,C++ 并没有说一个收缩转换(到 int 或到 float) 优于另一个。因此调用是不明确的。

您可以通过调用 check(2.5f) 或(可能更有用)通过实现 void check(double); 代替或与float 重载。

关于c++ - 我在程序中找不到歧义,但编译器说 check(int) 和 check(float) 之间存在歧义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20888528/

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