提到'距离'是模棱两可的

时间:2016-02-23 18:32:10

标签: c++ visual-c++

编译以下代码时,我收到错误

对'距离'的引用含糊不清

    #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();
}

任何人都可以帮我解决这个错误。 并为我提供解决方案以及为什么我会收到此错误。

2 个答案:

答案 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之类的其他符号将是一个可能的解决方案。