编译以下代码时,我收到错误
对'距离'的引用含糊不清
#include<iostream>
using namespace std;
class distance
{
int feet,inches;
distance():feet(0),inches(0)
{
}
distance(int f,int i):feet(f),inches(i)
{
}
void show()
{
cout<<"feet "<<feet;
cout<<endl<<"inches "<<inches;
}
distance operator + (distance) ;
};
distance distance::operator + (distance d)
{
int f,i;
f=feet+d.feet;
i=inches+d.inches;
return distance(f,i);
}
int main()
{
distance d1;
distance d2(2,3),d3(7,5);;
d1=d2+d3;
d1.show();
}
任何人都可以帮我解决这个错误。 并为我提供解决方案以及为什么我会收到此错误。
答案 0 :(得分:8)
这就是为什么using namespace std;
should not be used。您的班级distance
与标准函数std::distance
发生冲突。摆脱using namespace std;
如果您将使用标准组件,每次使用时都使用std::name_of_thing
,或者您可以使用using std::name_of_thing
。
答案 1 :(得分:1)
您的类名与命名空间中的其他符号发生冲突,将您的类名更改为Distance
之类的其他符号将是一个可能的解决方案。