Вот некоторые материалы для чтения C ++ FAQ Lite :)
В общем случае перегрузка вышеуказанных операторов не принесет никакой пользы.Какую дополнительную семантику вы пытаетесь реализовать?
Причина перегрузки операторов заключается в предоставлении интуитивно понятного синтаксиса пользователю вашего класса.Например, имеет смысл перегружать + и + = для строк.Для другого разработчика очевидно, что это означает.
Неужели не очевидно, что бы вы перегрузили ?: для ... При этом нет никаких технических причин, которые, как мне известно, препятствовали перегрузке этих операторов.
Перегрузка оператора -> позволяет создавать указатели с подсчетом ссылок, такие как boost :: shared_ptr.Понятие «отрицание» объекта может иметь разные значения в разных контекстах, поэтому разумно иногда перегружать этот оператор.