В этой программе литералы 1
и 2
являются операндами оператора plus (+
), который выдает на выходе значение 3. Это выходное значение затем выводится на консоль. В C++ выходное значение операции часто называют возвращаемым значением.
Скорее всего, вы уже знакомы со стандартными арифметическими операторами, которые часто используются в математике, включая сложение (+
), вычитание (-
), умножение (*
) и деление (/
). В C++ присвоение (=
) также является оператором, как и вставка (<<
), извлечение (>>
) и равенство (==
). Большинство операторов обозначаются символами (например, +
или ==
), но есть и ряд операторов, которые являются ключевыми словами (например, new
, delete
и throw
).
Примечание автора
По причинам, которые станут понятны при более подробном рассмотрении операторов, для операторов, которые являются символами, принято добавлять символ оператора к слову operator
. Например, оператор плюса будет записываться operator+
, а оператор извлечения - operator>>.
Количество операндов, которые оператор принимает в качестве входных данных, называется arity (арностью) оператора. Мало кто знает, что означает это слово, поэтому не стоит бросать его в разговоре и ожидать, что кто-то поймет, о чем вы говорите. Операторы в C++ бывают четырех различных типов:
Унарные операторы действуют на один операнд. Примером унарного оператора является оператор -
. Например, при значении -5
оператор - принимает литеральный операнд 5
и меняет его знак, чтобы получить новое выходное значение -5
.
Бинарные операторы действуют над двумя операндами (их часто называют левым и правым, так как левый операнд появляется слева от оператора, а правый - справа от него). Примером бинарного оператора является оператор +
. Например, если дано 3 + 4
, оператор +
принимает левый операнд 3
и правый операнд 4
и применяет математическое сложение для получения нового выходного значения 7
. Операторы вставки (<<
) и извлечения (>>
) - это бинарные операторы, принимающие std::cout
или std::cin
в левой части и значение для вывода или переменную для ввода в правой части.
Тернарные операторы действуют на три операнда. В C++ есть только один из них (условный оператор), который мы рассмотрим позже.
Нулевые операторы действуют на нулевые операнды. В C++ есть только один такой оператор (оператор throw), который мы также рассмотрим позже.
Обратите внимание, что некоторые операторы имеют более одного значения в зависимости от того, как они используются. Например, оператор -
имеет два контекста. Он может использоваться в унарной форме для инвертирования знака числа (например, для преобразования 5
в -5
, или наоборот), или в двоичной форме для вычитания (например, 4 - 3
).