• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

@LE}{@NDER

Добрый день!
Срочно нужна помощь в реализации перегрузки оператора сравнения для 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

mms

Хых. Если я всё правильно понял:

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

@LE}{@NDER

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!