оператор + () и оператор + = () [дубликаты]

0

Мой лектор C++ утверждает, что всякий раз, когда вам нужно реализовать operator+(), вы должны предоставить operator+ =() также?

Я не мог понять эту логику, может кто-нибудь объяснить мне логику этого решения?

  • 0
    Имеет смысл сделать и то, и другое, если вы собираетесь это сделать, но для этого нет необходимости.
  • 0
    Нет, ничто не заставляет вас делать это, это просто рекомендуется, потому что это логично.
Показать ещё 5 комментариев
Теги:

1 ответ

1
Лучший ответ

Ваш лектор ошибается.

Тот факт, что вы можете суммировать два объекта, образующих новый третий объект (который является бинарным +), не обязательно означает, что ваши объекты должны быть модифицируемыми "на месте" (что и есть +=).

Другими словами, если и только если ваш класс поддерживает концепцию модификации на месте, то это довольно хорошая практика программирования, чтобы обеспечить += всякий раз, когда вы предоставляете как + и =. Но в любом случае здесь "нет".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню