“距离”的提法含糊不清

reference to 'distance' is ambiguous

本文关键字:含糊不清 距离      更新时间:2023-10-16

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

提及"距离"是模棱两可的

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

任何人都可以帮助我解决错误。并为我提供解决方案以及为什么出现此错误。

这就是为什么

不应该使用using namespace std;的原因。您的类distance与标准函数std::distance冲突。 摆脱using namespace std;,如果您要使用标准组件,请在每次使用它时使用std::name_of_thing或者您可以使用using std::name_of_thing

您的类名与命名空间中的另一个符号冲突,将您的类名更改为其他类似 Distance 的符号将是一种可能的解决方案。