Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочник по С++.doc
Скачиваний:
49
Добавлен:
02.05.2014
Размер:
995.33 Кб
Скачать

Бьярн Страустрап. Справочное руководство по C++

Второе дополненное издание

* Справочное руководство r.1 Введение

Это справочное руководство описывает язык программирования С++ по состоянии на май 1991. С++ - язык программирования общего назначения, базирующийся на языке программирования С Ь. Ь "The C Programming Language" B. Kernighan, D. Ritchie. Prentice Hall, 1978, 1988. Есть русский перевод: "Язык программирования С. Задачи по языку С" Б. Керниган, Д. Ритчи, А. Фьюер. "Финансы и статистика". 1984 В дополнение к возможностям С язык С++ предоставляет классы, функции подстановки, перегрузку операций, перегрузку имен функций, постоянные типы, ссылки, операторы управления свободной памятью, проверку параметров функций и приведение типов. Все расширения С суммируются в $$R.18.1. Различия между С++ и ANSI C++ приведены в $$R.18.2 Ь. Ь American National Standard X3.159-1989. Американский национальный стандарт. Расширения С++ версии 1985 года до данного описания суммируются в $$R.18.1.2. Разделы, относящиеся к шаблонам типа ($$R.14) и управлению особыми ситуациями ($$R.15), являются местами планируемых расширений языка.

R.1.1 Обзор

Это руководство содержит следующее: 1. Введение. 2. Соглашения о лексических понятиях. 3. Основные понятия. 4. Стандартные преобразования. 5. Выражения. 6. Операторы. 7. Описания. 8. Описатели. 9. Классы. 10. Производные классы. 11. Контроль доступа к членам. 12. Специальные функции-члены. 13. Перегрузка. 14. Шаблоны типов. 15. Управление особыми ситуациями. 16. Препроцессорная обработка. Приложение A: Сводка синтаксиса Приложение B: Совместимость

R.1.2 Запись синтаксиса

В записи синтаксиса языка в этом руководстве синтаксические понятия обозначаются курсивом, а литеральные слова и символы шрифтом постоянной ширины. Варианты перечисляются на отдельных строках, за исключением тех немногих случаев, когда длинный список вариантов дается на одной строке с пометкой "один из". Необязательный терминальный или нетерминальный символ обозначается с помощью нижнего индекса "opt", поэтому { выражение opt } означает необязательное выражение, заключенное в фигурные скобки.

R.2 Соглашения о лексических понятиях

Программа на С++ состоит из одного или нескольких файлов ($$R.3.3). С логической точки зрения файл транслируется за несколько проходов. Первый проход состоит в препроцессорной обработке ($$R.16), на которой происходит включение файлов и макроподстановка. Работа препроцессора управляется с помощью команд, являющихся строками, первый символ которых отличный от пробела есть # ($$R2.1). Результат работы препроцессора есть последовательность лексем. Такую последовательность лексем, т.е. файл после препроцессорной обработки, называют единицей трансляции.

R.2.1 Лексемы

Существуют лексемы пяти видов: идентификаторы, служебные слова, литералы, операции и различные разделители. Пробелы, вертикальная и горизонтальная табуляция, конец строки, перевод строки и комментарии (все вместе "обобщенные" пробелы), как указано ниже, игнорируются, за исключением того, что они отделяют лексемы. Обобщенные пробелы нужны, чтобы разделить стоящие рядом идентификаторы, служебные слова и константы. Если входной поток разобран на лексемы до данного символа, то следующей лексемой считается лексема с максимально возможной длиной, которая начинается с этого символа.

R.2.2

Комментарии Символы /* начинают комментарий, который завершается символами */. Такие комментарии не могут быть вложенными. Символы // начинают комментарий, который завершается концом этой строки. Символы //, /* и */ не имеют специального назначения в комментарии // и рассматриваются как обычные символы. Аналогично символы // и /* не имеют специального назначения внутри комментария /*.