Мой лектор C++ утверждает, что всякий раз, когда вам нужно реализовать оператор +(), вы должны также предоставить оператор + =()?оператор +() и оператор + =()
Я не мог понять эту логику, может ли кто-нибудь объяснить мне логику этого решения?
Мой лектор C++ утверждает, что всякий раз, когда вам нужно реализовать оператор +(), вы должны также предоставить оператор + =()?оператор +() и оператор + =()
Я не мог понять эту логику, может ли кто-нибудь объяснить мне логику этого решения?
Ваш лектор ошибается.
То, что вы можете суммировать два объекта, образующих новый третий объект (что является бинарным +
), необязательно означает, что ваши объекты должны быть модифицируемыми «на месте» (что и делает +=
).
Другими словами, если и только если ваш класс поддерживает концепцию бытия изменяемую в месте, то это довольно хорошая практика программирования для обеспечения +=
всякий раз, когда вы предоставите как +
и =
. Но в любом случае здесь нет «необходимости».
Имеет смысл делать то и другое, если вы собираетесь сделать это, но для этого нет необходимости. – crashmstr
Нет, ничто не заставляет вас делать это, потому что это логично. – clcto
Претензия необоснованна: оператор Z + (X, Y) –