Я бы не перегружал operator&&
или operator||
.Даже если вы определили класс, который порождает булеву алгебру (например, конечные множества), возможно, будет лучшим выбором перегружать operator&
и operator|
.
. Причина в том, что программисты на C ++ожидать особой семантики для operator&&
и operator||
: они с коротким замыканием , т.е. не оценивать их правый аргумент, если в этом нет необходимости.Вы не можете получить это поведение при перегрузке, так как вы будете определять функцию.
Перегрузка operator,
была сделана, например, в библиотеке Boost.Assign .Это также единственный пример его перегрузки, который я знаю, и я никогда даже не думал о его перегрузке.Вам лучше иметь очень конкретный вариант использования, когда другой оператор не подходит.