Мой лектор C++ утверждает, что всякий раз, когда вам нужно реализовать operator+(), вы должны предоставить operator+ =() также?
Я не мог понять эту логику, может кто-нибудь объяснить мне логику этого решения?
Ваш лектор ошибается.
Тот факт, что вы можете суммировать два объекта, образующих новый третий объект (который является бинарным +
), не обязательно означает, что ваши объекты должны быть модифицируемыми "на месте" (что и есть +=
).
Другими словами, если и только если ваш класс поддерживает концепцию модификации на месте, то это довольно хорошая практика программирования, чтобы обеспечить +=
всякий раз, когда вы предоставляете как +
и =
. Но в любом случае здесь "нет".