| 3.2.1 Круглые скобки | |
| 3.2.2 Порядок вычисления | |
| 3.2.3 Увеличение и уменьшение *5 | |
| 3.2.4 Побитовые логические операции | |
| 3.2.5 Преобразование типа | |
| 3.2.6 Свободная память |
Операции C++ подробно и систематически описываются в #с.7; прочитайте, пожалуйста, этот раздел. Здесь же приводится краткая сводка и некоторые примеры. После каждой операции приведено одно или более ее общеупотребительных названий и пример ее использования. В этих примерах имя_класса - это имя класса, член - имя члена, объект - выражение, дающее в результате объект класса, указатель - выражение, дающее в результате указатель, выр - выражение, а lvalue - выражение, денотирующее неконстантный объект. Тип может быть совершенно произвольным именем типа (со *, () и т.п.) только когда он стоит в скобках, во всех остальных случаях существуют ограничения.
Унарные операции и операции присваивания правоассоциативны, все остальные левоассоциативны. Это значит, что a=b=c означает a=(b=c), a+b+c означает (a+b)+c, и *p++ означает *(p++), а не (*p)++.
Сводка Операций (часть 1)
:: разрешение области видимости имя_класса:: член:: глобальное:: имя| -> | выбор члена | указатель->член |
| [] | индексация | указатель [ выр ] |
| () | вызов функции | выр (список_выр) |
| () | построение значения | тип (список_выр) |
| sizeof | размер объекта | sizeof выр |
| sizeof | размер типа | sizeof (тип) |
| ++ | приращение после | lvalue++ |
| ++ | приращение до | ++lvalue |
| -- | уменьшение после | lvalue-- |
| -- | уменьшение до | --lvalue |
| ~ | дополнение | ~ выр |
| ! | не | ! выр |
| - | унарный минус | - выр |
| + | унарный плюс | + выр |
| & | адрес объекта | & lvalue |
| * | разыменование | * выр |
| new | создание (размещение) | new тип |
| delete | уничтожение (освобождение) | delete указатель |
| delete[] | уничтожение вектора | delete[ выр ] указатель |
| () | приведение (преобразование типа) | (тип) выр |
| * | умножение | выр * выр |
| / | деление | выр / выр |
| % | взятие по модулю (остаток) | выр % выр |
| + | сложение (плюс) | выр + выр |
| - | вычитание (минус) | выр - выр |
В каждой отчерченной части находятся операции с одинаковым приоритетом. Операция имеет приоритет больше, чем операции из частей, расположенных ниже. Например: a+b*c означает a+(b*c), так как * имеет приоритет выше, чем +, а a+b-c означает (a+b)-c, поскольку + и - имеют одинаковый приоритет (и поскольку + левоассоциативен).






