Поделиться через


Бинарные операторы

В следующей таблице приведен список операторов, которые можно перегрузить.

Переопределяемые бинарные операторы

Оператор

Имя

,

Comma

!=

Неравенство

%

Модуль

%=

Модуль/назначение

&

Побитовое И

&&

Логическое И

&=

Побитовое И/назначение

*

Умножение

*=

Умножение/назначение

+

Сложение

+=

Сложение/назначение

Вычитание

–=

Вычитание/назначение

–>

Выбор члена

–>*

Выбор указателя на член

/

Деление

/=

Деление/назначение

<

Меньше

<<

Сдвиг влево

<<=

Сдвиг влево/назначение

<=

Меньше или равно

=

Присваивание

==

Равенство

>

Больше

>=

Больше или равно

>>

Сдвиг вправо

>>=

Сдвиг вправо/назначение

^

Исключающее ИЛИ

^=

Исключающее ИЛИ/назначение

|

Побитовое включающее ИЛИ

|=

Побитовое включающее ИЛИ/назначение

||

Логическое ИЛИ

Чтобы объявить функцию бинарного оператора как нестатический член, необходимо объявить ее в виде

возвращаемый-тип операторop**(** arg )

где ret-type — возвращаемое значение, op — один из операторов, перечисленных в предыдущей таблице, а arg — аргумент любого типа.

Чтобы объявить функцию бинарного оператора как глобальную функцию, необходимо объявить ее в виде

ret-type operatorop**(** arg1**,** arg2 )

где ret-type и op — элементы, описанные для функций операторов членов, а arg1 и arg2 — аргументы. Хотя бы один из аргументов должен принадлежать типу класса.

Примечание

Ограничений на возвращаемые типы бинарных операторов нет, однако большинство пользовательских бинарных операторов возвращает тип класса или ссылку на тип класса.

См. также

Ссылки

Перегрузка операторов