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

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

@LE}{@NDER

Добрый день!
Срочно нужна помощь в реализации перегрузки оператора сравнения для 2х объектов: один объект базового класса, второй - класса-наследника.
Знаю, что для объектов одноко класса это бы работало приблизительно так:
bool сNaslednik::operator <(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
 
Хых. Если я всё правильно понял:

Код:
bool сNaslednik::operator <(cBase obj) const
{
return GetSpeed() < obj.GetSpeed();
}
 
Огромное спасибо! Проверил - работает!!! :)

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

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab