Байланысты: Бьерн Страуструп. Язык программирования С . М Бином, 2011
Структура книги Книга состоит из трех частей. Главы с 1 по 10 являются учебником по языку. В главах с 11 по 13
обсуждаются вопросы проектирования и развития программного обеспечения с учетом возможностей
С++. В конце книги приведено полное справочное руководство по языку. Исчерпывающее описание
конструкций С++ содержится только там. Учебная часть книги содержит примеры, советы,
предостережения и упражнения, для которых не нашлось места в руководстве.
Книга в основном посвящена вопросу, как с помощью языка C++ структурировать программу, а не
вопросу, как записать на нем алгоритм. Следовательно, там, где можно было выбирать, предпочтение
отдавалось не профессиональным, но сложным для понимания, а тривиальным алгоритмам. Так в
одном из примеров используется пузырьковая сортировка, хотя алгоритм быстрой сортировки больше
подходит для настоящей программы. Часто написать ту же программу, но с более эффективным
алгоритмом, предлагается в виде упражнения.
Глава 1 содержит краткий обзор основных концепций и конструкций С++. Она позволяет познакомиться
с языком в общих чертах. Подробные объяснения конструкций языка и способов их применения
содержатся в последующих главах. Обсуждаются в первую очередь средства, обеспечивающие
абстракцию данных и объектно-ориентированное программирование. Основные средства процедурного
программирования упоминаются кратко.
В главах 2, 3 и 4 описываются средства С++, которые не используются для определения новых типов:
основные типы, выражения и структуры управления. Другими словами, эти главы содержат описание
той части языка, которая по сути представляет С. Изложение в указанных главах идет в углубленном
виде.
Главы 5 - 8 посвящены средствам построения новых типов, которые не имеют аналогов в С. В главе 5
вводится основное понятие - класс. В ней показано, как можно определять пользовательские типы
(классы), инициализировать их, обращаться к ним, и, наконец, как уничтожать их. Глава 6 посвящена
понятию производных классов, которое позволяет строить из простых классов более сложные. Оно дает
также возможность эффективной и безопасной (в смысле типа) работы в тех ситуациях, когда типы
объектов на стадии трансляции неизвестны. В главе 7 объясняется, как можно определить унарные и
бинарные операции для пользовательских типов, как задавать преобразования таких типов, и каким
образом можно создавать, копировать и удалять объекты, представляющие пользовательские типы.
Глава 8 посвящена шаблонам типа, т.е. такому средству С++, которое позволяет определить семейство
типов и функций.
В главе 9 обсуждается обработка особых ситуаций, рассматриваются возможные реакции на ошибки и
методы построения устойчивых к ошибкам систем. В главе 10 определяются классы ostream и istream,
предоставляемые стандартной библиотекой для потокового ввода-вывода.
Главы 11 - 13 посвящены вопросам, связанным с применением С++ для проектирования и реализации
больших программных систем. В главе 11 в основном рассматриваются вопросы проектирования и
управления программными проектами. В главе 12 обсуждается взаимосвязь между языком С++ и
проблемами проектирования. В главе 13 показаны способы создания библиотек.
Завершается книга справочным руководством по С++.
Ссылки на различные части книги даются в виде $$2.3.4, что означает раздел 3.4 главы 2. Для
Бьерн Страуструп.
Язык программирования С++
13
обозначения справочного руководства применяется буква R, например, $$R.8.5.5.