|
| ||||||||||||
| ||||||||||||
|
Книги: [Классика] [Базы данных] [Internet/WWW] [Сети] [Программирование] [UNIX] [Windows] [Безопасность] [Графика] [Software Engineering] [ERP-системы] [Hardware]
ОтрывокО книгеЗачем написана эта книгаВскоре после своего появления язык C++ превратился в фактический стандарт объектно-ориентированного программирования. Отсюда логично возникла потребность в стандартизации. Только при наличии общепринятого стандарта можно написать программу, работающую на разных платформах, от PC до больших машин. Кроме того, при наличии стандартных библиотек программист использует универсальные компоненты и без потери переносимости программ работает на более высоком уровне абстракции, а не пишет весь код с самого начала. Процесс стандартизации C++ был начат в 1989 году международным комитетом ANSI/ISO. Комитет разработал стандарт, основанный на знаменитых книгах Бьярна Страуструпа «The C++ Programming Language» и «The Annotated C++ Reference Manual». В 1997 году работа над стандартом была завершена, а в 1998 году он был принят в качестве международного стандарта ISO и ANSI. Процесс стандартизации включал разработку стандартной библиотеки C ++, расширяющей базовые возможности языка и содержащей ряд компонентов общего назначения. Используя средства определения новых абстрактных и обобщенных типов, библиотека предоставляет в распоряжение программиста набор общих классов и интерфейсов. В частности, стандартная библиотека содержит:
Все перечисленные возможности доступны через относительно простой программный интерфейс. Стандартные компоненты чрезвычайно важны для многих программ. В наши дни обработка данных обычно сопряжена с вводом, обработкой и выводом больших объемов данных, которые часто представляются в текстовом формате. Необходимо отметить, что далеко не весь материал книги прост и очевиден. Стандартная библиотека весьма гибка, однако в любых нетривиальных ситуациях гибкость не дается даром. Учтите, что использование библиотеки иногда сопряжено со всевозможными каверзами и подвохами; на них указывается по мере изложения материала, а также предлагаются возможные способы обойти проблемы. Что необходимо знать читателюПредполагается, что читатель уже владеет языком C++ (в книге описаны стандартные компоненты C++, но не сам язык). Он должен быть знаком с концепциями классов, наследования, шаблонов и обработки ошибок. Тем не менее книга не требует досконального знания всех тонкостей языка. Действительно важные подробности описаны в книге, а мелочи существенны в основном для программистов, занимающихся реализацией библиотеки, а не ее использованием. Следует помнить, что язык изменялся в процессе стандартизации, поэтому некоторые ваши знания могут оказаться устаревшими. На с. приведен краткий обзор основных средств языка, необходимых для использования библиотеки. Прочитайте этот материал, если вы еще недостаточно хорошо освоили все новые средства C++ (например, ключевое слово typename и концепцию пространств имен). Стиль и структура книгиМногие компоненты стандартной библиотеки C++ в той или иной степени зависят друг от друга, поэтому трудно описывать отдельные компоненты без упоминания остальных частей. Отсюда вытекают несколько возможных вариантов подачи материала. Например, можно было бы приводить описания в порядке их следования в стандарте C++. Однако просто описывать компоненты библиотеки C++ с самого начала — не лучшее решение. Также можно было бы начать с обзора всех компонентов, за которым расположить главы с подробными описаниями. Наконец, компоненты можно было бы отсортировать и попытаться выстроить их в порядке, обеспечивающем минимальное количество перекрестных ссылок. В итоге автор остановился на варианте, в котором сочетаются все три решения. Книга начинается с краткого изложения базовых концепций и вспомогательных средств библиотеки. Далее следуют описания основных компонентов, каждое из которых занимает одну или несколько глав. На первом месте стоит стандартная библиотека шаблонов (STL). Бесспорно, STL является самой мощной, самой сложной и самой интересной частью библиотеки C++, а ее архитектура в значительной степени влияет на другие компоненты. Затем рассматриваются более очевидные компоненты — специализированные контейнеры, строковые и числовые классы. Вероятно, следующий компонент — библиотека IOStream — уже знаком читателю и используется им в практической работе. В завершение будут рассмотрены проблемы интернационализации, которые оказывают некоторое влияние на работу библиотеки IOStream. Знакомство с каждым компонентом начинается с описания целей и архитектурных решений, сопровождаемых примерами. Далее следует углубленное описание различных способов использования компонента и возникающих при этом проблем. Описание, как правило, заканчивается справочным разделом, в котором приводятся сигнатуры и определения классов компонента и их функций. Ниже дано краткое содержание книги. В первых четырех главах представлена вводная информация о книге и стандартной библиотеке C++ в целом.
В главах 13 и 14 рассматриваются темы, относящиеся к вводу-выводу и интернационализации (эти две темы тесно связаны друг с другом).
Как читать эту книгуКнига представляет собой гибрид учебника и структурированного справочника по стандартной библиотеке C++. Отдельные компоненты стандартной библиотеки C++ в той или иной степени независимы друг от друга, поэтому после глав 2–4 описания компонентов можно читать в любом порядке. Не забывайте, что главы 5–9 посвящены одному и тому же компоненту. Чтобы понять материал остальных глав о STL, начните с вводного описания STL в главе 5. Программист C++, желающий освоить основные принципы и все аспекты стандартной библиотеки, может просто читать эту книгу от начала до конца, пропуская справочные разделы. При работе с некоторыми компонентами стандартной библиотеки C++ нужную информацию проще всего найти по алфавитному указателю, который сделан достаточно подробным, чтобы свести к минимуму время поиска. Как известно, все новое лучше всего изучается на конкретных примерах. По этой причине материал книги поясняется многочисленными примерами, от нескольких строк кода до целых программ. В последнем случае имя файла с программой указывается в первой строке комментария. Файлы примеров можно загрузить с web-сайта оригинального издания этой книги (http://www.josuttis.com/ libbook) или с web-сайта издательства «Питер» (http://www.piter.com/download). Текущая ситуацияНа момент написания книги стандарт C++ был полностью подготовлен. Некоторые компиляторы еще не соответствуют новому стандарту. Вероятно, ситуация изменится в ближайшем будущем, однако нельзя исключать того, что часть материала книги не будет соответствовать некоторым системам, и читателю придется вносить изменения в примеры под специфику конкретной платформы. Практически все примеры программ нормально компилируются в EGCS версии 2.8 и выше; реализации этого компилятора для многих платформ бесплатно распространяются через Интернет (http://egcs.cygnus.com/) и на компакт-дисках со сборниками программ. От издателя переводаВаши замечания, предложения, вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение! Все исходные тексты, приведенные в книге, вы сможете найти по адресу http:// www.piter.com/download Подробную информацию о наших книгах вы найдете на web-сайте издательства http://www.piter.com
Начало
|
|
CITForum © 1997–2025