Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
c++book1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.83 Mб
Скачать

Предисловие

Язык формирует наш способ мышления и определяет, о чем мы можем мыслить.

- Б.Л. Ворф

С++ - это универсальный язык программирования, задуман­ный так, чтобы сделать программирование более приятным для серьезного программиста. За исключением второстепенных дета­лей С++ является надмножеством языка программирования C. По­мимо возможностей, которые дает C, С++ предоставляет гибкие и эффективные средства определения новых типов. Используя опре­деления новых типов, точно отвечающих концепциям приложения, программист может разделять разрабатываемую программу на лег­ко поддающиеся контролю части. Такой метод построения прог­рамм часто называют абстракцией данных. Информация о типах содержится в некоторых объектах типов, определенных пользова­телем. Такие объекты просты и надежны в использовании в тех ситуациях, когда их тип нельзя установить на стадии компиля­ции. Программирование с применением таких объектов часто на­зывают объектно-ориентированным. При правильном использовании этот метод дает более короткие, проще понимаемые и легче контролируемые программы.

Ключевым понятием С++ является класс. Класс - это тип, определяемый пользователем. Классы обеспечивают сокрытие дан­ных, гарантированную инициализацию данных, неявное преобразо­вание типов для типов, определенных пользователем, динамичес­кое задание типа, контролируемое пользователем управление памятью и механизмы перегрузки операций. С++ предоставляет гораздо лучшие, чем в C, средства выражения модульности прог­раммы и проверки типов. В языке есть также усовершенствова­ния, не связанные непосредственно с классами, включающие в себя символические константы, inline-подстановку функций, па­раметры функции по умолчанию, перегруженные имена функций, операции управления свободной памятью и ссылочный тип. В С++ сохранены возможности языка C по работе с основными объектами аппаратного обеспечения (биты, байты, слова, адреса и т.п.). Это позволяет весьма эффективно реализовывать типы, определя­емые пользователем.

С++ и его стандартные библиотеки спроектированы так, чтобы обеспечивать переносимость. Имеющаяся на текущий момент реализация языка будет идти в большинстве систем, поддержива­ющих C. Из С++ программ можно использовать C библиотеки, и с С++ можно использовать большую часть инструментальных средств, поддерживающих программирование на C.

Эта книга предназначена главным образом для того, чтобы помочь серьезным программистам изучить язык и применять его в нетривиальных проектах. В ней дано полное описание С++, много примеров и еще больше фрагментов программ.

Благодарности

С++ никогда бы не созрел без постоянного использования, предложений и конструктивной критики со стороны многих друзей и коллег. Том Карджилл, Джим Коплин, Сту Фельдман, Сэнди Фре­зер, Стив Джонсон, Брайэн Керниган, Барт Локанти, Дуг МакИл­рой, Дэннис Риччи, Лэрри Рослер, Джерри Шварц и Джон Шопиро подали важные для развития языка идеи. Дэйв Пресотто написал текущую реализацию библиотеки потоков ввода/вывода.

Кроме того, в развитие С++ внесли свой вклад сотни лю­дей, которые присылали мне предложения по усовершенствованию, описания трудностей, с которыми они сталкивались, и ошибки компилятора. Здесь я могу упомянуть лишь немногих из них: Гэ­ри Бишоп, Эндрю Хьюм, Том Карцес, Виктор Миленкович, Роб Мюр­рэй, Леони Росс, Брайэн Шмальт и Гарри Уокер.

В издании этой книги мне помогли многие люди, в частнос­ти, Джон Бентли, Лаура Ивс, Брайэн Керниган, Тэд Ковальски, Стив Махани, Джон Шопиро и участники семинара по С++, который проводился в Bell Labs, Колумбия, Огайо, 26-27 июня 1985 го­да.

Мюррэй Хилл, Нью Джерси Бьярн Страустрап

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]