Байланысты: Бьерн Страуструп. Язык программирования С . М Бином, 2011
ПРЕДИСЛОВИЕ "А дорога идет все дальше и дальше" (Бильбо Бэгинз) Как было обещано в первом издании книги, запросы пользователей определили развитие С++. Его
направлял опыт широкого круга пользователей, работающих в разных областях программирования. За
шесть лет, отделяющих нас от первого издания описания С++, число пользователей возросло в сотни
раз. За эти годы были усвоены многие уроки, были предложены и подтвердили практикой свое право на
существование различные приемы программирования. О некоторых из них и пойдет речь ниже.
Сделанные за эти шесть лет расширения языка прежде всего были направлены на повышение
выразительности С++ как языка абстракции данных и объектно-ориентированного программирования
вообще и как средства для создания высококачественных библиотек с пользовательскими типами
данных в
частности. Библиотекой высокого качества мы считаем библиотеку, позволяющую пользователю
определять с помощью классов понятия, работа с которыми сочетает удобство, эффективность и
надежность. Под надежностью понимается то, что класс предоставляет защищенный по типам
интерфейс между пользователями библиотеки и ее разработчиками. Эффективность предполагает, что
использование классов не влечет за собой больших накладных расходов по памяти или времени по
сравнению с "ручными" программами на С.
Эта книга является полным описанием языка С++. Главы с 1 по 10 представляют собой учебник,
знакомящий с языком. В главах с 11 по 13 обсуждаются вопросы проектирования и развития
программного обеспечения. Завершается книга справочным руководством по языку С++. Естественно,
что все расширения языка и способы их использования, которые появились после выхода в свет
первого издания, являются частью изложения. К ним относятся уточненные правила для разрешения
перегрузки имени, средства управления памятью и средства контроля доступа, надежная по типам
процедура связывания, статические и постоянные функции-члены, абстрактные классы, множественное
наследование, шаблоны типов и обработка особых ситуаций.
С++ является языком программирования общего назначения. Естественная для него область
применения - системное программирование, понимаемое в широком смысле этого слова. Кроме того,
С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки.
Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров - до
самых больших супер-ЭВМ, и практически для всех операционных систем. Поэтому книга дает лишь
описание собственно языка, не объясняя особенности конкретных реализаций, среды
программирования или библиотек.
Читатель найдет в книге много примеров с классами, которые, несмотря на несомненную пользу, можно
считать игрушечными. Такой стиль изложения позволяет лучше выделить основные понятия и
полезные приемы, тогда как в настоящих, законченных программах они были бы скрыты массой
деталей. Для большинства предложенных здесь классов, как то связанные списки, массивы, строки
символов, матрицы, графические классы, ассоциативные массивы и т.д., - приводятся версии "со 100%
гарантией" надежности и правильности, полученные на основе классов из самых разных коммерческих
и некоммерческих программ. Многие из "промышленных" классов и библиотек получились как прямые
или косвенные потомки игрушечных классов, приводимых здесь как примеры.
В этом издании книги по сравнению с первым больше внимания уделено задаче обучения. Вместе с
тем, уровень изложения в равной мере учитывает и опытных программистов, ни в чем не умаляя их
знаний и профессионализма. Обсуждение вопросов проектирования сопровождается более широкой
подачей материала, выходящей за рамки описаний конструкций языка и способам их использования. В
этом издании приводится больше технических деталей и повышена строгость изложения. В
особенности это относится к справочному руководству, которое вобрало в себя многолетний опыт
работы в этом направлении. Предполагалось создать книгу с достаточно высоким уровнем изложения,
которая бы служила программистам не только книгой для чтения. Итак, перед вами книга с описанием
языка С++, его основных принципов и методов программирования. Надеемся, что она доставит вам
радость.