|
| 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, поскольку + и - имеют одинаковый приоритет (и поскольку + левоассоциативен).