使用float会导致“对重载函数的调用不明确”错误

阿西夫·穆斯塔克(Asif Mushtaq)

我正在重载该函数add(),但是当我使用float数据类型时,它显示了一个错误。但是,当我将其更改为时double,它可以正常工作。为什么float导致错误?

代码是:

#include <iostream>
using namespace std;
class students{
    private:
        int i;
        float f;

    public:
        void add(int b){
            i=b;
            cout << "First Int: " << i;
        }
        void add(float c){
            f=c;
            cout << "Second Int: " << f;
        }

};

int main(){
    students obj;
    obj.add(9);
    obj.add(5.5);
}

错误:

In function 'int main()':
[Error] call of overloaded 'add(double)' is ambiguous
[Note] candidates are:
[Note] void students::add(int)
[Note] void students::add(float)
阿伦AS

5.5double,但您的函数都不带double参数。因此,编译器对于是调用带int参数的函数还是带参数的函数感到困惑float因此,您会收到一个错误消息,说它模棱两可。

这就是为什么当您将函数更改为具有double参数时,错误不再出现的原因,因为现在有一个可以接受double参数的函数,因此那里存在歧义。

您也可以通过调用以下函数来解决问题:

obj.add(5.5f);

f在数字后面加上会使它成为浮点数。

让我们看一下C ++标准

第2.13.4节

1浮点文字由整数部分,小数点,小数部分,e或E,一个可选带符号的整数指数以及一个可选类型后缀组成。整数部分和小数部分均由十进制(十进制)数字序列组成。确定数字值时,将忽略数字序列中的可选分隔单引号。[示例:文字1.602'176'565e-19和1.602176565e-19具有相同的值。--end示例]可以省略整数部分或分数部分(不能全部省略);小数点或字母e(或E)和指数(不是两者)都可以省略。整数部分,可选的小数点和可选的小数部分构成了浮动文字的重要部分。指数(如果存在)指示10的幂,有效部分将按该幂进行缩放。除非后缀明确指定,否则浮动文字的类型为double。后缀f和F指定浮点数,后缀l和L指定长整数。如果缩放后​​的值不在其类型的可表示值范围内,则程序格式错误。

(对不起,所有内容都已发布,但是您可以float通过这种方式了解有关s的更多信息

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么对重载函数的调用不明确?

来自分类Dev

重载函数的调用不明确,double vs float

来自分类Dev

重载函数的调用不明确

来自分类Dev

重载write(int)的调用不明确

来自分类Dev

使用QApplication :: applicationDirPath调用时,重载的arg(QString(&)())的调用不明确,为什么?

来自分类Dev

错误:重载运算符“ *”的使用不明确

来自分类Dev

重载字符向量和字符串C ++时对成员函数的调用不明确

来自分类Dev

为什么编译器在 C++11 中给出消息“重载函数的调用不明确”?

来自分类Dev

Firebase调用中下标的使用不明确

来自分类Dev

使用Mockito的argThat匹配器会导致“方法类型不明确”错误

来自分类Dev

解决了不明确的重载方法调用

来自分类Dev

不明确的函数重载 [例如 max()]

来自分类Dev

下标使用不明确

来自分类Dev

运算符重载和函数重载产生不明确的编译器错误

来自分类Dev

使用matplotlib绘制分段函数会导致ValueError:具有多个元素的数组的真值不明确

来自分类Dev

OpenCL:调用内置函数不明确

来自分类Dev

调用重载方法时出现错误信息“对于其他类型不明确”

来自分类Dev

当无关类型定义为别名时,对函数的调用不明确

来自分类Dev

gcc与clang,msvc和icc:此函数调用不明确吗?

来自分类Dev

错误:以下方法或属性之间的调用不明确...需要帮助

来自分类Dev

多线程,Task.Run错误'以下方法或属性之间的调用不明确'

来自分类Dev

下列方法或属性错误之间的调用不明确-C#Visual Studio 2019

来自分类Dev

“对'三角形'的调用不明确”错误

来自分类Dev

尝试使用 String 和 URL 数组作为参数实现两个构造函数会产生不明确的错误

来自分类Dev

对“ Create”(而不是“ Foo”)的不明确的重载调用

来自分类Dev

无法在 SoapUI 中调用请求 - 不明确的方法重载

来自分类Dev

同一库之间的调用不明确?

来自分类Dev

为什么对swap()的调用不明确?

来自分类Dev

为什么这些方法调用不明确?

Related 相关文章

  1. 1

    为什么对重载函数的调用不明确?

  2. 2

    重载函数的调用不明确,double vs float

  3. 3

    重载函数的调用不明确

  4. 4

    重载write(int)的调用不明确

  5. 5

    使用QApplication :: applicationDirPath调用时,重载的arg(QString(&)())的调用不明确,为什么?

  6. 6

    错误:重载运算符“ *”的使用不明确

  7. 7

    重载字符向量和字符串C ++时对成员函数的调用不明确

  8. 8

    为什么编译器在 C++11 中给出消息“重载函数的调用不明确”?

  9. 9

    Firebase调用中下标的使用不明确

  10. 10

    使用Mockito的argThat匹配器会导致“方法类型不明确”错误

  11. 11

    解决了不明确的重载方法调用

  12. 12

    不明确的函数重载 [例如 max()]

  13. 13

    下标使用不明确

  14. 14

    运算符重载和函数重载产生不明确的编译器错误

  15. 15

    使用matplotlib绘制分段函数会导致ValueError:具有多个元素的数组的真值不明确

  16. 16

    OpenCL:调用内置函数不明确

  17. 17

    调用重载方法时出现错误信息“对于其他类型不明确”

  18. 18

    当无关类型定义为别名时,对函数的调用不明确

  19. 19

    gcc与clang,msvc和icc:此函数调用不明确吗?

  20. 20

    错误:以下方法或属性之间的调用不明确...需要帮助

  21. 21

    多线程,Task.Run错误'以下方法或属性之间的调用不明确'

  22. 22

    下列方法或属性错误之间的调用不明确-C#Visual Studio 2019

  23. 23

    “对'三角形'的调用不明确”错误

  24. 24

    尝试使用 String 和 URL 数组作为参数实现两个构造函数会产生不明确的错误

  25. 25

    对“ Create”(而不是“ Foo”)的不明确的重载调用

  26. 26

    无法在 SoapUI 中调用请求 - 不明确的方法重载

  27. 27

    同一库之间的调用不明确?

  28. 28

    为什么对swap()的调用不明确?

  29. 29

    为什么这些方法调用不明确?

热门标签

归档