Изучаете ли вы C++ или давно работаете с этим языком программирования: операторы C++ являются основой для эффективного программирования на C++. Одни операторы соответствуют своему интуитивному значению, другие могут быть неочевидны на первый взгляд.
- Что такое операторы С++?
- приоритет оператора
- Перегрузка оператора C++
- Краткий обзор операторов C++
- Арифметические операторы
- Простые операторы присваивания
- Комбинированные операторы присваивания
- Логические операторы С++
- Операторы сравнения
- Битовые манипуляции
- Управление памятью
- Доступ к данным для объектов и указателей
Что такое операторы С++?
По сути, оператор — это просто знак для операции. Это может относиться к одному, но в основном к нескольким операндам. В большинстве случаев результатом является новое значение. Популярным примером операндов являются знакомые вам по школе арифметические операторы, такие как «+» для сложения и «-» для вычитания двух чисел.
Операторы C++ различаются не только по своему функциональному назначению. Арность или арность операторов также является важным критерием дифференцирования:
| Арность | Количество операндов | Пример |
| Унарные операторы | операнд | Логическое отрицание: !var_name |
| Бинарные операторы | Два операнда | Сложение: значение1 + значение2 |
| Тернарные операторы | Три операнда | Если-иначе условие: условие ? условие_истина : условие_ложь |
приоритет оператора
Как и в случае с арифметическими операторами в школе или операторами Python, для операторов C++ также существует так называемый приоритет операций. Это способ указать порядок, в котором оцениваются операторы. К арифметическим операторам применяются известные правила «точка перед тире». Но вы должны следовать определенным правилам и с другими операторами C++.
if (var1 && var2 || var3) { do_something(); }
В приведенном выше примере сначала вычисляется логическое выражение после оператора if. Опять же, оператор && (логическое И) имеет приоритет над оператором || (логическое ИЛИ). Таким образом, если оценка «var1 && var2» или оценка «var3» возвращает true, выполняется вызов функции «do_something()».
Если вы хотите быть в безопасности, вы также можете использовать круглые скобки.
Перегрузка оператора C++
Вы можете перегрузить большинство операторов C++. Это означает, что вы можете присвоить новое значение существующему оператору в контексте. Чтобы выполнить перегрузку оператора в C++, вам нужно ключевое слово оператора. Следуйте этому с оператором C++, который вы хотите перегрузить. В противном случае перегрузка операторов в C++ ведет себя как перегрузка функций.
Краткий обзор операторов C++
Арифметические операторы
Некоторые арифметические операторы C++ уже известны со школы. Они работают с числами, а затем возвращают новый номер. За двумя исключениями (унарный плюс и минус, которые можно рассматривать как знаки), все арифметические операторы являются бинарными.
| Оператор С++ | значение | пример |
| + | Сложение / унарный плюс | 6 + 4 |
| — | Вычитание / унарный минус | 10 — 6 |
| * | умножение | 10*3 |
| / | целочисленное деление | 20/10 |
| % | по модулю | 21% 2-й |
Операторы присваивания
В C++, как и в большинстве языков программирования, значения хранятся в переменных. Для того, чтобы присвоить таким переменным конкретные значения, нужны специальные операторы.
Простые операторы присваивания
| Оператор С++ | значение | пример |
| = | Простое задание | х = 3 |
| ++ | приращение | х++ |
| — | уменьшение | x— |
Комбинированные операторы присваивания
В дополнение к простым операторам присваивания C++ также поддерживает комбинированные операторы. Это арифметические или побитовые операции, которые одновременно связаны с присвоением значения :
int x = 4; x += 2;
В приведенном выше примере кода простое присваивание присваивает числовое значение 4 переменной x. Комбинированный оператор присваивания «+=» затем используется для выполнения арифметического сложения и сохранения полученного значения непосредственно в x. В письменном виде задание будет выглядеть так: «х = х + 2».
| Оператор С++ | значение | пример |
| += | дополнение и присвоение | х += 2 |
| -= | вычитание и присваивание | х -= 2 |
| *= | Умножение и присваивание | х *= 2 |
| /= | деление и назначение | х / = 2 |
| %= | Модуль и присваивание | х%= 2 |
| &= | Побитовое и и присваивание | б &= 1 |
| <<= | Битовый сдвиг влево и присваивание | б <<= 1 |
| >>= | Право на битовый сдвиг и присвоение | б >>= 1 |
| ^= | Побитовый Xor и присваивание | б^= 1 |
| |= | Побитовое или и присваивание | б |= 1 |
Логические операторы С++
Вы можете использовать логические операторы C++ для пропозиционального сравнения двух выражений. За исключением логического НЕ, которое всегда относится к одному утверждению и отрицает его значение истинности, логические операторы являются бинарными.
| Оператор С++ | значение | пример |
| && | логический и | правда правда |
| || | Логическое или | ложно || истинный |
| ! | Логично не | !истинный |
Операторы сравнения
Операторы сравнения — это операторы C++, которые проверяют взаимосвязь двух элементов. Так что они бинарные. За исключением трехэтапного сравнения, которое возвращает число, возвращаемое значение всех операторов сравнения C++ является логическим значением.
| Оператор С++ | значение | пример |
| == | равенство | а == б |
| != | неравенство | а != б |
| <= | Меньше или равно | а <= б |
| >= | Больше или равно | а >= б |
| < | Меньше | а<б |
| > | Большой | а > б |
| <=> | Трехстороннее сравнение | а <=> б |
Битовые манипуляции
Существуют побитовые операторы C++ для эффективного доступа к отдельным битам и повышения скорости программ. Они особенно важны для ориентированного на производительность программирования.
| Оператор С++ | значение | пример |
| & | Побитовое и | прочь |
| | | Побитовое или | а | б |
| ^ | Побитовый Xor | а^б |
| ~ | Побитовое отрицание | ~ а |
| << | Сдвиг влево | а << б |
| >> | сдвиг вправо | а >> б |
Управление памятью
C++ — это машинно-ориентированный язык, и, что не менее важно, он предлагает ряд операторов, помогающих управлять памятью.
| Оператор С++ | значение | пример |
| & | определение адреса | &Икс |
| sizeof() | Определяет требования к памяти для выражения | размер (х) |
| new | Создает новый объект и возвращает указатели | object* pointer = new object() |
| Delete | Уничтожает объект | delete object |
Доступ к данным для объектов и указателей
Следующие операторы C++ помогут вам, если вы хотите получить доступ к отдельным элементам объектов или областям памяти указателей.
| Оператор С++ | значение | пример |
| * | Разыменование указателей, возвращает область памяти | *указатель = 3; |
| . | Доступ к членам объекта | объект.член = 2; |
| -> | Доступ к членам объекта с помощью указателя | указатель объекта->член = 2; |








