函数重载中的int和float
int and float in function overloading
我有两个重载函数,如下所示:
void print(int i) { ... }
void print(float f) { ... }
它给了我这个print(1.2);
:的错误
error: call of overloaded 'print(double)' is ambiguous
有人能解释一下为什么吗?
1.2是一个双文本,而不是浮点。
因此编译器需要明确的歧义消除。
1.2f会起作用,因为它是一个浮点文字。
1.2
是一个double
文字,这使得您试图调用的函数不明确——double
可以很容易地被截断为float
或int
。使用float
文字(1.2f
)或显式强制转换它可以解决问题。
它将1.2解释为双精度。把它铸造成浮子就能解决问题。
打印(浮动(1.2));
相关文章:
- 没有从阵列<float>到阵列<int>的可行转换
- 为什么我会收到此错误?无法将 {lb, ub} 从<大括号括起来的初始值设定项列表>转换为 float(**)(float*, int)
- 如何将 qml 的文本转换为 float 和 int
- 有没有比static_cast更优雅的从int到float的演员阵容<float>?
- 如何在函数中将字符串和分数存储为(Int 或 float)
- 谷歌测试编译错误 Os X:函数式转换从"int"到"internal::FloatingEq2Matcher"的模糊转换<float>
- 如何使用 std:from_chars 在 C++17 中从字符串转换为 int/float
- 如何修复 E2015 "ambiguity between pow(double,double) and pow(float,int)"
- C++优化从 int 到 float 的数组转换
- 如何在 c++ 中将数据从文件读取到 int/float 值
- 错误:二进制'operator*' 'int [1]'和'float'类型的操作数无效
- 功能使用INT和Float类型作为C 中的参数过载
- 内部字符串/字符如何在 int 和 float 中存储
- 无法将'int*'转换为参数'1'的'float*'
- 将 python list 作为 'float*' 或 'int*' 传递给 C/C++
- 在C++/Visual Studio中,通过给定数据格式(doubles、float、int、1位bools)的UDP发
- 当float转换为int时,此代码中是如何/为什么进行缩小的
- 用 (float&)int works,(float const&)int 转换像 (float)int 代替?
- float(int)const的类型特征
- C ++:此操作做什么:float(int)