Оператор, перегружающийся в C++

Если Вы перегружаетесь - как оператор - (), он должен использоваться слева от объекта, однако перегружаясь () как оператор () () он используется направо от объекта. Как мы знаем, какой оператор должен использоваться слева и которые использоваться справа?

6
задан shreyasva 21 March 2010 в 04:48
поделиться

2 ответа

Посмотрите на диаграмму приоритета оператора. Это скажет вам, с каким направлением ассоциируется (связывается) оператор. Обратите внимание, что некоторые операторы имеют несколько форм с разными значениями, например, бинарные и унарные -. В таких случаях у вас может быть несколько перегрузок, например:

T operator-()

и:

T operator-(const T &o)

Компилятор выбирает нужную, основываясь на синтаксической интерпретации оператора.

См. также этот полезный набор рекомендаций.

3
ответ дан 17 December 2019 в 07:02
поделиться

Большинство унарных операторов можно размещать только с определенной стороны своего операнда. Для двух особых случаев, ++ и - , см. этот FAQ .

1
ответ дан 17 December 2019 в 07:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: