
vs2012运行C++重载函数时出现错误
下面代码能在vc6.0下编译过,但在vs2012下编译时出现四个错误。#include<iostream>usingnamespacestd;intabs(intx){i...
下面代码能在vc6.0下编译过,但在vs2012下编译时出现四个错误。
#include<iostream>
using
namespace std;
int abs(int x)
{ if(x<0) return(-x);else return(x);
}
float abs(float x)
{ return(x<0?-x:x); }
double abs(double
x)
{ return(x<0?-x:x); }
void main(void)
{ int a;
float
b;
double c;
cout<<"按序输入一个整数,一个单精度数和一个双精度数:\n";
cin>>a>>b>>c;
cout<<"它们的绝对值分别是:\n";
cout<<"abs("<<a<<")="<<abs(a)<<'\n';
cout<<"abs("<<b<<")="<<abs(b)<<'\n';
cout<<"abs("<<c<<")="<<abs(c)<<'\n';
}
错误 1 error
C2084: 函数“float abs(float)”已有主体
错误 2 error C2084: 函数“double
abs(double)”已有主体
错误 3 error C2264: “abs”: 函数定义或声明中有错误;未调用函数
错误 4 error
C2264: “abs”: 函数定义或声明中有错误;未调用函数 展开
#include<iostream>
using
namespace std;
int abs(int x)
{ if(x<0) return(-x);else return(x);
}
float abs(float x)
{ return(x<0?-x:x); }
double abs(double
x)
{ return(x<0?-x:x); }
void main(void)
{ int a;
float
b;
double c;
cout<<"按序输入一个整数,一个单精度数和一个双精度数:\n";
cin>>a>>b>>c;
cout<<"它们的绝对值分别是:\n";
cout<<"abs("<<a<<")="<<abs(a)<<'\n';
cout<<"abs("<<b<<")="<<abs(b)<<'\n';
cout<<"abs("<<c<<")="<<abs(c)<<'\n';
}
错误 1 error
C2084: 函数“float abs(float)”已有主体
错误 2 error C2084: 函数“double
abs(double)”已有主体
错误 3 error C2264: “abs”: 函数定义或声明中有错误;未调用函数
错误 4 error
C2264: “abs”: 函数定义或声明中有错误;未调用函数 展开
1个回答
展开全部
换个名字就可以了,不要叫abs。可能是因为VS2012的<iostream>里包了其它库,里面有abs函数了,你再定义就重了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询