Для программистов и опытных пользователей




НазваниеДля программистов и опытных пользователей
страница1/32
Дата публикации14.08.2013
Размер4.44 Mb.
ТипДокументы
lit-yaz.ru > Информатика > Документы
  1   2   3   4   5   6   7   8   9   ...   32
САМОУЧИТЕЛЬ

J-G ИЗ

переработанное и дополненное


  • с исходными

    текстами всех программ

    Н аследование, полиморфизм,

  • Исключительные

  • Шаблоны и

  • Пространства имен

  • Динамическаяидентификация типа

шаблонов

Herbert Schildt

Osborne McGraw-Hill

Third Edition

Teach Yourself






Герберт Шилдт


Санкт-Петербург

«БХВ-Петербург»

2003

3-е

681.3.06 Г.

, C++: Пер. с англ. - 3-е изд. - СПб.: БХВ-Петербург, 2003. - 688 с. ISBN 5-7791-0086-1

Необходимость в переработке и дополнении предыдущего издания книги вызвана в первую очередь выходом в свет долгожданного для программистов всего мира еди­ного международного стандарта по C++. Теперь можно быть уверенным, что уже в будущем программы на C++ будут выглядеть и функционировать оди-независимо от того, в какой среде программирования и для какого компи-написаны. В книге сохранен весь материал двух предыдущих изданий, а добавлено несколько новых глав и множество новых разделов. Эта книга -удобное руководство для самостоятельного изучения C++ в соответствии с тре( ИЯМИ нового стандарта и рассчитана на читателей, уже владеющих язы­ком программирования С. Методика подачи материала предполагает строго после­довательное изучение глав, содержащих множество примеров программ, а также упражнений для проверки и повторения пройденного материала.

^ Для программистов и опытных пользователей

УДК 681.3.06

Группа подготовки издания:

Главный редактор Вадим Сергеев

Зав. редакцией Алексеи Жданов

Перевод с английского Алексея Жданова

Компьютернаяверстка: Ольги Сергиенко,

Натальи Боговой
Корректор Зинаида Дмитриева

Елены Клыковой
Зав. производством Николай Тверских

Authorized translation from the English language edition published by Osborne McGraw-Hill. Copyright © (998. All rights reserved. No part of mis book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission in writing from the Publisher. Russian language edition published by BHV— St. Petersburg. Copyright © 1998. Авторизованный перевод английской редакции, выпушенной Osborne McGraw-Hill. Copyright © 1998. Все права защищены. Никакая часть настоящей книги не может быть воспроизведена или передана в какой бы то пи было форме и какими бы то ни было средствами, будь то электронные или механические, включая

iTOKonnpopaj а н ие и запись на магнитный носитель, если на то нет письменного разрешения Русская редакция выпушена BHV—-Санкт-Петербург. Copyright О 1998.

Лицензия ИД NB 02429 от 24.07.00. Подписано в печать 25.06.03. Формат 70x1 ooV,,. Печать офсетная. Усл. печ. л. 55,5.

Доп. тираж 3000 экз. Заказ No 942 "6ХВ-Петербург", 198005, Санкт-Петербург, Измайловский пр., 29.

Гигиеническое заключение на продукцию, товар Г* 77.99.02.953.Д.001537.03.02 от 13.03.2002 г. выдано Департаментом ГСЭН Минздрава России.

Отпечатано с готовых диапозитивов

в Академической типографии "Наука" РАН

199034, Санкт-Петербург, Э линия, 12.

ISBN 0-07-882392-7 (англ.) С 1998 by Osborne McGraw-Hill

ISBN ; 791-0086-1 (рус.) О Перевод на русский язык "БХВ-Санкг-Петербург", 199Й

Если вы уже знаете язык программирования С и хотели бы теперь заняться изучением C++ — эта книга для вас.

C++ — это попытка решения разработчиками языка С задач ориентированного программирования (Object Oriented Programming, OOP). Построенный на твердом фундаменте С, C++ помимо OOP поддерживает множество других полезных инструментов, не жертвуя при этом ни мощью, ни элегантностью, ни гибкостью С. C++ уже стал универсальным языком для программистов всего мира, языком, на котором будет написано следующее поколение высокоэффективного программного обеспечения. Это единствен­ный серьезный язык, который просто обязан знать любой уважающий себя профессиональный программист.

C++ был разработан сотрудником научно-исследовательского центра AT&T Bell Laboratories (Нью-Джерси, США) Бьярном Страуструпом в 1979 году, название "С с классами" было изменено на C++ в 1983 году, с 1980 года C++ претерпел две существенные модернизации: в 1985 и 1990 годах. Последняя, третья модернизация связана с процессом зации C++. Несколько лет назад началась работа по созданию дународного стандарта по C++. Для этой цели был сформирован объединенный комитет по стандартизации ANSI (American National Standards Institute, Американский национальный институт стандартов) и ISO (International Standards Organization, Международная организация по стандар-языка C++. Первый рабочий проект указанного стандарта был пред-25 января 1994 года. Комитет ANSI/ISO по C++ (членом которого являлся автор этой книги Герберт Шилдт) фактически сохранил все основные черты языка, заложенные туда еще Страуструпом и добавил несколько новых инструментов. В своей основе этот первый проект лишь отражал положение, в котором в то время находился язык C++.

Вскоре после завершения работы над первым проектом стандарта произошло событие, которое в конечном итоге и привело к его значительному расшире­нию: Александр Степанов создал библиотеку стандартных шаблонов (Standard Template Library, STL). Как вы в дальнейшем узнаете, библиотека стандартных шаблонов устанавливает набор основополагающих процедур, которые можно использовать для обработки данных. Библиотека стандартных шаблонов — это и элегантный инструмент программирования, но одновременно и объемный. Сразу после появления первого проекта стандарта комитет ANSI/ISO проголосовал за включение библиотеки стандартных шаблонов в спецификацию C++, что привело к значительному расширению C++ по сравнению с исходным определением этого языка. Несомненно событием в области программирования, создание

C++

шаблонов тем не менее привело к некоторому замедлению процесса стандартизации C++.

Справедливости ради надо сказать, что процесс стандартизации C++ отнял значительно больше времени, чем можно было предположить, когда он толь­ко начинался. Тем не менее, он близок к завершению. Комитетом ANSI/ISO разработан и предложен окончательный вариант проекта, который лишь формального одобрения. С практической точки зрения стандарт 1 стал наконец реальностью. В появляющихся сейчас компиляторах все новые атрибуты C++.

в книге материал учит языку программирования C++ в соот-с новым стандартом этого языка (Standard C++). Именно эта версия комитетом ANSI/ISO и именно она в настоящее время принята на вооружение основными производителями компиляторов. Таким образом, можно быть уверенным, что книга, которую вы начали изучать сегодня, завтра столь же полезной.

издания

Сейчас вы держите в руках третье издание книги " Самоучитель C++". В ней сохранен весь материал двух предыдущих изданий, а также добавлены две но­вые главы и множество новых разделов. В первой из этих двух глав описыва­ется динамическая идентификация типа (Run-Time Type Identification, RTTI) и новые, недавно разработанные операторы приведения типов. Во второй гла­ве рассказывается о библиотеке стандартных шаблонов. Обе эти темы посвя-тем главным инструментам, которые были добавлены в C++ уже после в свет предыдущего издания. В новых разделах других глав вы узнаете о пространствах имен, новом стиле оформления заголовков и современной системе ввода/вывода C++. Таким образом, третье издание книги "Само­учитель C++" оказалось существенно больше

^ Если вы работаете под Windows

Если на вашем компьютере установлена операционная система Windows, и вы хотите научиться писать программы для Windows, то C++ — это именно тот язык, который вам нужен. C++ полностью соответствует задачам программи­рования под Windows. Тем не менее ни одна из программ, предлагаемых в книге, не предназначена для работы в этой операционной системе. Наоборот, все эти программы запускаются из командной строки. Причина очевидна: программы для Windows по самой своей сути большие и сложные. По самым скромным подсчетам, для создания даже простейшей программы для Windows требуется от 50 до 70 строк исходного кода. При написании каждой такой программы для демонстрации возможностей языка C++ потребовалось бы написать тысячи строк исходного кода. Проще говоря, Windows — это не са-среда для изучения языка программирования. Тем не менее

Введение7_

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

Когда вы в совершенстве овладеете С ■, вы несомненно сумеете применить свои знания для программирования под Windows. Действительно, программи­рование на C++ под Windows позволяет пользоваться библиотеками классов, например, библиотекой классов MFC (Microsoft Foundation Classes), что суще­ственно упрощает разработку приложений. Кроме этого, интерфейс любого приложения под Windows достаточно просто создать с помощью таких средств визуального программирования, как Visual C++ 5 или Borland C++ 5. Сердце­виной же любого профессионального приложения является программная реа­лизация его идеи, а отнюдь не пользовательский интерфейс, пусть даже самый что ни на есть дружественный. Другими словами, эта книга учит не созданию пользовательского интерфейса в стиле Windows, а собственно языку программирования C++.

^ Как организована

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

Материал книги представлен в определенном порядке. Поэтому изучайте ее последовательно, от главы к главе. В каждой новой главе предполагается, что вы уже освоили материал всех предыдущих. Во всех главах, за исключением главы 1, имеются упражнения для проверки ваших знаний предыдущей главы, для проверки усвоения материала текущей главы, а также упраж-проверки усвоения всего изученного на данном этапе материала, на упражнения находятся в приложении В в конце книги.

В книге предполагается, что вы уже являетесь состоявшимся программистом на языке С. Проще говоря, гораздо легче учиться программировать на C++, когда уже умеешь это делать на С. Если вы еще не умеете программировать на С, то перед тем как взяться за эту книгу, лучше потратить некоторое время на его изучение.

программ

Исходные коды представленных в книге программ можно найти либо на при­лагаемой дискете, описание которой находится в приложении D в конце книги, либо в Internet по адресу http://www.osborne.com. Использование этих освободит вас от необходимости набирать их вручную.










^ Глава 1

обзор C++

C++ -- это расширенная версия языка С. C++ содержит в себе все, что имеется в С, но кроме этого он поддерживает объектно-ориентированное программирование (Object Oriented Programming, OOP). В C++ имеется множество дополнительных возможностей, которые независимо от объект­но-ориентированного программирования делают его просто "лучше, чем С", За небольшими исключениями C++ — это более совершенный С. В то вре­мя как все, что вы знаете о языке С, вполне применимо и к C++, понима­ние его новых свойств все же потребует от вас значительных затрат и сил. Однако преимущества программирования на C++ с лихвой

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

десь примеры программ. Более подробно эти свойства в следующих главах.

глава также освещает некоторые отличия между стилями

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

++ был задуман для под

программирования, эта глава начинается с описания OOP. Как вы многие свойства C++ тем или иным образом касаются OOP. Однако понимать, что C++ может использоваться для написания не только но-ориентированных программ. То, как вы используете C++, полностью зависит от вас.

К моменту написания этой книги процесс стандартизации языка програм-C++ был завершен. По этой

^ 10 _ Самоучитель C++

торые важные отличия между обычными для последних нескольких лет вер­сиями C++ и новым стандартом языка (Standard C++). Поскольку настоя­щая книга задумывалась как пособие для обучения языку Standard C++, этот материал особенно важен для тех, кто работает с устаревшим тором.

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

тем как начать собственно изложение материала, имеет смысл сде-несколько важных замечаний о природе и форме C++. Как правило, программы на C++ внешне напоминают программы на С. Так же, как и на С, программы на C++ начинают выполняться с функции mainQ. Для полу­чения аргументов командной строки C++ использует те же параметры argc, argv, что и С. Хотя C++ определяет их в собственной ориентированной библиотеке, он также поддерживает все функции дартной библиотеки С. В C++ используются те же управляющие структуры и те же встроенные типы данных, что и в С.

Запомните, в этой книге предполагается, что вы уже знаете язык програм-С. Проще говоря, вы уже должны уметь программировать на С тем, как начнете изучать программирование на C++. Если вы еще не знаете С, то желательно потратить некоторое время на его изучение.



В этой книге предполагается, что вы знаете, как компилировать и выполнять программу, используя компилятор C++. Если это не так, вам следует обра­титься к соответствующему руководству пользователя. (Из-за отличий в ком­пиляторах дать в этой книге инструкцию для работы с любым из них не представляется возможным.) Поскольку программирование лучше изучать в работе, вам настоятельно рекомендуется вводить, компилировать и запус­кать приводимые в книге примеры программ в том порядке, в котором они представлены.
  1   2   3   4   5   6   7   8   9   ...   32

Добавить документ в свой блог или на сайт

Похожие:

Для программистов и опытных пользователей iconИнструкция по настройке системы ФинГрад
Инструкция предназначена для администраторов ФинГрад, обслуживающего технического персонала и опытных пользователей

Для программистов и опытных пользователей iconУчебное пособие Санкт-Петербург 2012 Общая информация о курсе Название...
Курс представляет собой руководство по применению системы автоматизированного проектирования Autocad. В книге отражены функциональные...

Для программистов и опытных пользователей iconКнига рассчитана как на начинающих, так и на опытных пользователей
Книга предназначена для того, чтобы помочь решить те житейские и психологические проблемы, с которыми каждый из нас сталкивается...

Для программистов и опытных пользователей icon-
Ские и новосибирские темы дня во многом были схожи. Одной из центральных интернет-тем для новосибирских пользователей, как и для...

Для программистов и опытных пользователей iconКонкурсы для начинающих программистов
Уважаемые руководители учреждений высшего профессионального образования Российской Федерации!

Для программистов и опытных пользователей iconХанк Рейнвотер Как пасти котов. Наставление для программистов, руководящих...
Посвящается Дэвиду, моему любимому сыну, память о тебе меня неизменно вдохновляет

Для программистов и опытных пользователей iconСодержание
На вебсайтах, которые принадлежат предприятию studivz ltd. (studiVZ, schuelervz и meinVZ), более 10 млн зарегистрированных пользователей....

Для программистов и опытных пользователей iconРеферат Содержание
Интернета, не выходя из дома. Ежедневно ряды пользователей сети пополнятся тысячами новых пользователей. Некоторые люди настолько...

Для программистов и опытных пользователей iconКонкурс проводится среди членов Клуба Профессионалов, т е. тех пользователей,...
Информационный Центр «искра» проводит конкурс «Лучший знаток спс консультантПлюс» среди всех категорий пользователей (далее – Конкурс)...

Для программистов и опытных пользователей iconПрактика семейной расстановки
Берту Хеллингеру и может быть полезна как для обучения начинающих, так и для совершенствования уже опытных психотера­певтов и консультантов....



Образовательный материал



При копировании материала укажите ссылку © 2013
контакты
lit-yaz.ru
главная страница