Перегрузка оператора сравнения для объектов разных классов

  • Автор темы @LE}{@NDER
  • Дата начала
@

@LE}{@NDER

#1
Добрый день!
Срочно нужна помощь в реализации перегрузки оператора сравнения для 2х объектов: один объект базового класса, второй - класса-наследника.
Знаю, что для объектов одноко класса это бы работало приблизительно так:
bool сNaslednik::eek:perator <(cNaslednik obj) const
{
int var1=speed;
int var2=obj.speed;
return (var1<var2)?true:false;
}
void main()
{
Naslednik Object1, Object2;
if (Object1<Object2)
cout<<"Object1 is slower than Object2"<<endl;
else
cout<<"Object2 is slower than Object1"<<endl;
}
Но надо, чтобы один объект принадлежал базовому классу и параметр speed - переменная protected: базового класса, передаваемая в класс наследник методом базового класса void GetSpeed() .
Желательно по-быстрее, поскольку экзамен на носу!!! :rolleyes:
Буду безмерно благодарен.
@LE}{@NDER
 
M
#2
Хых. Если я всё правильно понял:

Код:
bool сNaslednik::operator <(cBase obj) const
{
return GetSpeed() < obj.GetSpeed();
}
 
@

@LE}{@NDER

#3
Огромное спасибо! Проверил - работает!!! :)

Ошибка, как я понял, была в том, что в параметрах я передавал тот же класс:
bool сNaslednik::eek:perator <(cNaslednik obj) const, когда изменил на
bool сNaslednik::eek:perator <(cBase obj) const, все запахало