如何解决此错误?终端的

How to solve this error?of terminal

本文关键字:错误 终端 何解决 解决      更新时间:2023-10-16
#include<iostream>
#include<cstdlib>
#include<cmath>
using namespace std;
int round(double number);
int main()
 {
  double doublevalue;
   char ans;
    do
    {
    cout << "Enter the double value:";
       cin >> doublevalue;
     cout << "Rounded that number is"<<round(doublevalue)<<endl;
     cout << "Again?(y/n)";
     cin >> ans;
      }while(ans=='y' ||ans=='Y');
        cout << "End of testing.n";
       return 0;
         }
        int round(double number)
      {
      return static_cast<int>(floor(number+0.5));
     }

错误如下:

 roundoff.cpp:6:24: error: new declaration ‘int round(double)’
  int round(double number);
                    ^
 In file included from /usr/include/features.h:374:0,
             from /usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h:39,
             from /usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:426,
             from /usr/include/c++/4.8/iostream:38,
             from roundoff.cpp:1:
/usr/include/x86_64-linux-gnu/bits/mathcalls.h:309:1: error: ambiguates     old declaration ‘double round(double)’
 __MATHCALLX (round,, (_Mdouble_ __x), (__const__));

^roundoff.cpp:在函数"int round(double("中:roundoff.cpp:22:24:错误:新声明"int round(double("int round(双数(^在/usr/include/features.h:337:0中包含的文件中,从/usr/include/x86_64-linux-gnu/c++/4.8/bits/os_defines.h:39,从/usr/include/x86_64-linux-gnu/c++/4.8/bits/c++config.h:426,从/usr/include/c++/4.8/iostream:38,来自舍入.cpp:1:/usr/include/x86_64-linux-gnu/bits/mathcalls.h:309:1:错误:混淆旧声明"双循环(double(">MATHCALLX(圆形,,(Mdouble__x(,(__const((;^

您必须更改函数round的名称,因为cmath已经定义了一个名为round的方法,该方法具有导致歧义的相同签名。将名称更改为my_round(double number)而不是round,它将起作用。