c++ - 在 'abs(double&)' 中重载 "avg += abs(num)"

标签 c++

下面是我遇到问题的代码。 avg += abs(num) 行有错误,但我无法解决。错误代码:

error: call of overloaded 'abs(double&)' is ambigous

我意识到它非常基础,但在我使用的“C++:初学者指南(第二版)” 书中,Herbert Schildt 中的代码是相同的此处使用的示例之一:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
    double num, avg;
    int x = 5;
    int i;

    avg = 0.0;

    for (i = 1; i <= x; ++i){

        cout << "Enter value " << i << ": ";
        cin >> num;

        avg += abs(num);

    }

    avg /= x;

    cout<< endl;
    cout << "The average is " << avg;
    return 0;
}

最佳答案

您没有为 std::abs 的浮点重载包含正确的 header :

#include <cmath>

关于c++ - 在 'abs(double&)' 中重载 "avg += abs(num)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17922845/

相关文章:

c++ - 在一个文件设备中 boost 接收器和源

c++ - 什么是模板 <> 内联 bla bla

c++ - 微软 SQL 服务器 : Access a local temporary table in a prepared statement

C++ - 按字母顺序排列字符串

c++ - 如何检查线程中是否调用了析构函数?

C++ - 递归函数没有结束

c++ - ARM GCC 交叉编译器 fedora 22

c++ - 同一表达式中的变量赋值和使用

c++ - 构建实际上是十六进制数的字符串变量

c++ - 在 opencv 中绘制、编号和识别网格单元