C ++ Оператор перегружен — ответ на викторину выглядит неправильно?

Скриншот

всем привет

В этом году в наших университетских курсах были допущены некоторые ошибки, и я просто перебираю викторины для пересмотра перед экзаменами, на прилагаемом рисунке показан правильный ответ для «который не может быть реализован как перегрузка оператора, не являющегося членом.

Публикация здесь, так как может не получить ответ от форума в срок. Я что-то неправильно понимаю, или ответ ниже неправильный?

Спасибо 🙂

2

Решение

Функция, не являющаяся членом оператор должен состоять из двух аргументов. Все параметры имеют два аргумента, кроме последнего, поэтому d является ответом. Если бы он был сделан как функция-член или обычная функция с именем, он был бы скомпилирован.

1

Другие решения

Бинарные операторы, как operator > всегда нужны 2 аргумента для работы. Тем не менее, функции-члены получают this который выступает в качестве первого аргумента. Не члены конечно не получают this и именно поэтому подпись должна принять два параметры.

Таким образом, «d» является правильным для вашего вопроса с несколькими предположениями выше.

1

По вопросам рекламы [email protected]