Я пытаюсь выполнить свое задание. В сообщении говорится, что в классе Distance создайте перегруженный оператор *, чтобы два расстояния можно было умножить вместе. Вот моя программа:
#include<iostream>
using namespace std;
class distance
{
private:
int a;
public:
distance():a(10){}
distance(int x)
{
a=x;
}
void print()
{
cout<<"\n a = "<<a<<" \n ";
}
distance operator *(distance);
};
distance distance :: operator *(distance d)
{
a=a*d.a;
return distance(a);
}
int main()
{
distance d1,d2,d3;
d1.print();
d2.print();
d3.print();
d3=d1 * d2;
d3.print();
return 0;
}
Но я получаю сообщение об ошибке компиляции:
'distance' : ambiguous symbol.
когда я запускаю его на VC ++
Но на Turbo C он работает нормально (с небольшими изменениями: #include<iostream.h>
).
Пожалуйста, объясните, где я ошибаюсь. Заранее спасибо.