| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
циализатор
<::> new <местоположение> имя-типа <инициализатор>
- 72 -
местоположение: (только С++)
(список-выражений)
имя-ограниченного-типа: (только С++)
спецификатор-типа <декларатор-ограничения>
декларатор-ограничения: (только С++)
операция-указателя <декларатор ограничения>
декларатор-ограничения [<выражение>]
выражение-отмены-распределения: (только С++)
<::> delete выражение-приведения
<::> delete [выражение] выражение-приведения
выражение-приведения:
унарное-выражение
(имя-типа) выражение-приведения
выражение-типа-ссылки:
выражение-приведения
выражение-типа-ссылки .* выражение-приведения (только С
++) выражение-типа-ссылки -> выражение-приведения (только С+
+)
выражение-типа-умножения:
выражение-типа-ссылки
выражение-типа-умножения * выражение-типа-ссылки
выражение-типа-умножения / выражение-типа-ссылки
выражение-типа-умножения % выражение-типа-ссылки
выражение-типа-сложения:
выражение-типа-умножения
выражение-типа-сложения + выражение-типа-умножения
выражение-типа-сложения - выражение-типа-умножения
выражение-типа-сдвига:
выражение-типа-сложения
выражение-типа-сдвига << выражение-типа-сложения
выражение-типа-сдвига >> выражение-типа-сложения
выражение-отношения:
выражение-типа-сдвига
выражение-отношения < выражение-типа-сдвига
выражение-отношения > выражение-типа-сдвига
выражение-отношения <= выражение-типа-сдвига
выражение-отношения >= выражение-типа-сдвига
выражение-типа-равенства:
выражение-отношения
выражение-типа-равенства = выражение-отношения
выражение-типа-равенства != выражение-отношения
выражение-И:
выражение-типа-равенства
выражение-И & выражение-типа-равенства
выражение-исключающее-ИЛИ:
выражение-И
выражение-исключающее-ИЛИ выражение-логическое-И
выражение-включающее-ИЛИ:
выражение-исключающее-ИЛИ
выражение-включающее-ИЛИ \! выражение-исключающее-ИЛИ
выражение-логическое-И:
выражение-включающее-ИЛИ
- 73 -
выражение-логическое-И && выражение-включающее-ИЛИ
выражение-логическое-ИЛИ:
выражение-логическое-И
выражение-логическое-ИЛИ !! выражение-логическое-И
условное-выражение:
выражение-логическое-ИЛИ
выражение-логическое-ИЛИ ? выражение : условное-выражение
выражение-присвоения:
условное-выражение
унарное-выражение операция-присвоения выражение-присвоения
операция-присвоения: одно из
= *= /=%= += -=
<<= ??= &=^= \!=
выражение:
выражение-присвоения
выражение, выражение-присвоения
выражение-типа-константы:
условное-выражение
-----------------------------------------------------------
Стандартные преобразования подробно рассматриваются на
стр.42 оригинала, в таблице 1.15.
Вычисление выражений выполняется по определенным прави-
лам преобразования, группировки, ассоциативности и приорите-
та, которые зависят от используемых в выражениях операций,
наличию круглых скобок и типов данных операндов. Способ
группировки операндов и подвыражений не обязательно опреде-
ляет фактический порядок вычисления выражений в Turbo C++
(см. "Последовательность вычислений" на стр. 76 оригинала.)
Выражения могутдаватьв результате именующие выражения
(lvalue), значения переменных (rvalue), либо не давать ника-
ких выражений вообще. Не зависимо от того, является ли ре-
зультатом выражения некоторое значение, выражение может
иметь побочный эффект.
Грамматические правила, приведенные в таблице 1.19, на
стр. 74 оригинала, полностью определяют приоритеты и ассоци-
ативность операций. Кратко эта информация сведена в таблице
1.20. Существует пятнадцать категорийприоритетов, некоторые
из которых содержат только одну операцию. Операции, относя-
щиеся к одной и той же категории, имеют одинаковый приоритет
выполнения. Каждой категории соответствует собственное пра-
вило ассоциативности: слева-направо или справа-налево. При
отсутствии в выражении круглых скобок эти правила использу-
ются для разрешения группировки выражения с операциями рав-
ного приоритета.
- 74 -
Ассоциативность и приоритеты операций Turbo C++ Tаблица 1.20
------------------------------------------------------------
Операции Ассоциативность
------------------------------------------------------------
() [] -> :: . Слева-направо
! тильда - ++ -- & * Справа-налево
sizeof new delete .* ->* / % Слева-направо
+ - Слева-направо
<< >> Слева-направо
< <= > >= Слева-направо
& Слева-направо
^ Слева-направо
\! Слева-направо
&& Слева-направо
\!\! Слева-направо
?:условное выражение Справа-налево
= += /= %= += -= Справа-налево
&= ^= \!= , Слева-направо
------------------------------------------------------------
Приоритеты обозначаютсяпоследовательностью расположения
в данной таблице. Первый элемент таблицы имеет наивысший
приоритет.
Выражения и Turbo C++
С++ позволяет перегрузку некоторых стандартных операций
С, как описано начиная со стр.125 оригинала. Перегруженной
называется такая операция, которая применительно к выражени-
ям типа класса ведет себя некоторым специальным образом.
Например, оператор отношения == может быть определен в клас-
се complex для проверки равенства двух комплексныхчисел,
причем действие его для типов данных других классов остается
прежним. Перегруженный оператор реализуется как функция; эта
функция определяет тип операнда, именующее выражение
(lvalue) и последовательность вычислений, устанавливаемая
при использовании перегруженного оператора. Однако, перег-
рузка не может изменять приоритеты операций. Аналогичным об-
разом, С++ позволяет выполнять определяемые пользователем
преобразования между объектами класса и фундаментальными ти-
пами. Учтите, что некоторые правила относительно операций и
преобразований, обсуждаемые в данном разделе, неприменимы к
выражениям в С++.
Последовательность вычислений
Последовательность вычисления операндов в выражениях
Turbo C++ не определена, если иное явно не задано операцией.
Компилятор пытается реорганизовать выражение таким образом,
чтобы улучшить качество генерируемого кода. Следовательно,
необходима осторожностьпри работе с выражениями, в которых
значение модифицируется более одного раза. В целом,следует
избегать создания выражений, которые одновременно и модифи-
|
adfun.ru
|
|
|
|