Г. Шилтд - Самоучитель C++ (DJVU) (1114955), страница 89
Текст из файла (страница 89)
21 продолжение) Приложение0 Описание дискеты На дискете находятся листинги программ, которые приведены в книге в разделах "Примеры" (каталог Ехаптр1е) и "Упражнения" (каталог Ехегс1зе). Листинги из главы с номером 1Х1 находятся в соответствующем подкаталоге С)зарХ. Листинги программ — ответы на упражнения, расположенные в начале каждой главы (раздел "Повторение пройденного"), находятся в подкаталоге Вереи. Листинги программ — ответы на упражнения, расположенные в конце каждой главы (раздел "Проверка усвоения материала главы"), находятся в подкаталоге Мазгегу.
Листинги программ — ответы на упражнения, расположенные также в конце каждой главы (раздел "Проверка усвоения материала в целом"), находятся в подкаталоге Сипш1агп е. Тексты программ содержат символы русского языка и предназначены для компиляции и запуска в МБ-РОЯ (каталог 003). Если вы работаете в МБ %1пдовз, то необходимо компилировать эти программы как консольные приложения (каталог%1пдовз).
Для компиляции можно использовать любой современный компилятор С++. Не огорчайтесь,.если записанные на дискете программы будут работать не так, как вы ожидаете, или вообще не будут работать. Поиск и исправление синтаксических ошибок — это тоже прекрасный способ изучения языка программирования. Желаем удачи! 675 И Данные закрытые, 12 открытые, 12 тип, 65 Предметный указатель Абстрактный класс, 314 Алгоритм, 421; 453 Американский национальный институт стандартов (АХ81), 14 Анонимное объединение, 66 Аргумент по умолчанию, 158 Ассоциативный контейнер, 446 Ассоциативный список, 421; 446 Базовый класс, 57 Безымянное пространство имен, 386; 391 Библиотека стандартных шаблонов, 332; 419 Битовая маска, 244 Ввод/Вывод вставка, 259 двоичный, 283 контроль состояния, 295 манипуляторы, 254 на консоль, 19 оператор, 19 потоки, 242 произвольный доступ, 292 С, 19; 242 с использованием массивов, 411 С++, 19; 242 файловый, 276 форматируемый, 244 функция, 19 Вектор, 419; 425 Виртуальная функция, 303; 306 Виртуальный базовый класс, 229 Возбуждение исключительной ситуации, 337 Встраиваемая функция, 72 Двунаправленный список, 435 Деструктор, 45; 216 Динамическая идентификация типа (ВТТ1), 357; 358 Динамический массив, 425 Динамический полиморфизм, 303 Доступ произвольный, 292 Дружественная функция, 97 Заголовок, !5 Заголовочный файл, 15 Иерархия классов, !3; 205 Инкапсуляция, 11; 59 Искажение имен, 409 Исключительная ситуация возбуждаемая оператором веха, 351 возбуждение, 337 перехват, 337 Итератор, 421 обратный, 422 Класс, 26; 65 абстрактный, 314 базовый, 57; 207 виртуальный, 229; 230 косвенный, 223 деструктор, 45; 216 иерархия, 13; 205 конструктор, 44; 216 контейнер, 421 ассоциативный, 421 объявление, 27 полиморфный, 307 производный, 57; 207 родовой, 325; 332 строковый, 420; 462 функция-конструктор, 44 функция-член, 27 член класса, 26 защишенный, 212 модифицируемый, 401 Самоучитель С++ Класс, 26; 65 член класса, 26 постоянный, 383; 401 статический, 383; 396 Класс-контейнер, 424 Класс-шаблон, 242 Ключ, 421 Ключевое слово, 41 Комментарий в стиле С, 24 в стиле С++, 24 многострочный, 25 однострочный, 24 Конструктор, 44; 216; 404 копий, 52; 92; 149 параметры, 51 перегрузка, 144 Контейнер, 421 ассоциативный, 421; 446 ассоциативный список, 421; 446 вектор, 419; 425 ключ, 421 очередь, 419 список, 419; 435 стек, 419 Контроль состояния ввода/вывода, 295 Манипуляторы ввода/вывода, 254 пользовательские, 272 Массив безопасный, 138 динамический,425 защищенный, 137 объектов, 108 Международная организация по стандартам (180), 14 Многострочный комментарий, 25 Множественное наследование, 223 Модифицируемый член класса, 401 Наследование, 13; 57; 205 множественное, 223 Независимая ссылка, 139 Неоднозначность программы, 165 0 Обработка исключительных ситуаций, 325; 337 Обратный итератор, 422 Объединение анонимное, 66 Объект, 12 в качестве аргумента, 87 в качестве возвращаемого значения функции, 93 массив, 108 передача по ссылке, 132 присваивание, 82 указатель на объект, 113 Объектно-ориентированное программирование (ООР), 5; 9; 10; 11 Объект-функция, 423 Объявление класса, 27 Однострочный комментарий, 24 Оператор де1еге, 118; 122 пев, 118; 121 ввода/вывода, 19 вставки, 259 извлечения, 265 индексирования массива, 197 перегрузка, 13; 15 приведения типов, 357 присваивания, 194 расширения области видимости, 27; 103 стрелка, 63; 113 точка, 63; 113 Оператор-функция, 176 дружественная, 191 Очередь, 419 П Параметры конструктора, 51 Перегрузка конструктора, 144 операторов, 13; 175 функции, 12; 36 аргумент по умолчанию, 158 неоднозначность, 165 Переопределение виртуальной функции, 306 Перехват исключительной ситуации, 337 Предметный указатель Подмена, 308 Позднее связывание, 318 Полиморфизм, 12 динамический, 303; 317 Полиморфный класс, 307 Пользовательские манипуляторы, 272 Порожденная функция, 328 Последовательность, 421 Постоянный член класса, 383; 401 Поток флаги формата, 244 ввода/вывода, 242 Предварительное объявление, 101 Предикат, 423 Преобразования функции, 383; 393 Приведение типа, 165 Присваивание объектов, 82 Программирование объектно-ориентированное, 5; 9; 1О; 11 язык структурного программирования, 11 Производный класс, 57 Пространство имен, 16; 18; 383 безымянное, 386; 391 Раннее связывание, 318 Распределитель памяти, 423 Родовая функция, 325; 326 Родовой класс, 243; 325; 332 Связывание позднее, 318 раннее, 318 Спецификатор доступа, 59; 207 Спецификатор сборки, 408 Список, 419; 435 двунаправленный, 435 Ссылка, 127 в качестве возвращаемого значения функции, 135 вперед, 101 независимая, 139 передача объекта по ссылке, 132 Статический член класса, 383 Стек, 419 Строка в стиле С, 462 Строковый класс, 420; 462 Структура, 65 Тип данных, 65 приведение типа, 165 Указатель, 63 11т1з, 117 записи, 292 на объект, 63; !13 производного класса, 304 считывания, 292 Файл заголовочный, 15 Флаги формата, 244 перечисление, 244 Функция ввода/вывода, 19 виртуальная, 303; 306 переопределение, 306 подмена, 308 вставки, 259 встраиваемая, 72 деструктор, 45 дружественная, 97 извлечения, 265 конструктор, 44 перегрузка, 12; 36 пользовательская ввода, 266 пользовательская вывода, 259 порожденная, 328 создание экземпляра, 328 преобразования, 383; 393 родовая, 325; 326 сравнения, 423 чистая виртуальная, 314 Функция-член, 27 Функция-шаблон, 328 Содержание ВВЕДЕНИЕ ОТЛИЧИЯ ТРЕТЬЕГО ИЗДАНИЯ Если вы РАБОТАЕТЕ под %1ХРОМ..
КАК ОРГАНИЗОВАНА ЭТА КНИГА ИСХОДНЫЕ КОДЫ ПРОГРАММ ГЛАВА 1. КРАТКИЙ ОБЗОР С++ МИРОВАНИЕ? УНКЦИЙ 1.1. ЧТО ТАКОЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАМ И нкапсуляция Полиморфизм Наследование 1.2, ДВЕ ВЕРСИИ С++. Новые заголовки в программах на С++ Пространства имен Если вы работаете со старым компилятором 1.3. Консольный ввод и вывод в С++ 1.4. КОММЕНТАРИИ в С++ 1.5. КЛАССЫ. ПЕРВОЕ ЗНАКОМСТВО.. 1.6. НЕКОТОРЫЕ отличия языков С и С++. 1.7. ВВЕДЕНИЕ в ПЕРЕГРУЗКУ ФУНКЦИИ..
1.8. КЛЮЧЕВЫЕ СЛОВА С++. ГЛАВА 2. ВВЕДЕНИЕ В КЛАССЫ 2.1. КОНСТРУКТОРЫ И ДЕСТРУКТОРЫ 22Е КОНСТРУКТОРЫ С ПАРАМЕТРАМИ 2.3, ВВЕДЕНИЕ в НАСЛЕДОВАНИЕ 2.4. УКАЗАТЕЛИ НА ОБЪЕКТЫ. 2,5. КлАссы, СТРУКТУРЫ и ОБЪЕДИНЕНИЯ. 2.6. ВСТРАИВАЕМЫЕ ФУНКЦИИ..
2,7. ВСТРАИВАЕМЫЕ ФУНКЦИИ в ОБЪЯВЛЕНИИ КЛАССА.... ГЛАВА 3. ПОДРОБНОЕ ИЗУЧЕНИЕ КЛАССОВ 3,1. ПРИСВАИВАНИЕ ОБЪЕКТОВ. 3.2. ПЕРЕДАЧА ОБЪЕКТОВ ФУНКЦИЯМ. 3,3. ОБЪЕКТЫ в КАЧЕСТВЕ ВОЗВРАШАЕМОГО ЗНАЧЕНИЯ Ф 3.4, ДРУЖЕСТВЕННЫЕ ФУНКЦИИ: ОБЗОР ГЛАВА 4. МАССИВЫ, УКАЗАТЕЛИ И ССЫЛКИ 4.1. МАССИВЫ ОБЪЕКТОВ 4.2. ИСПОЛЬЗОВАНИЕ УКАЗАТЕЛЕЙ НА ОБЪЕКТЫ... .6 ..6 .7 7 .10 11 12 13 . 14 16 18 18 19 .24 ..26 .32 36 ..41 43 51 .57 ..63 65 ..72 ....75 81 .82 ..87 ....93 ..97 107 !08 .113 Самоучитель С++ 114 .118 .121 127 132 135 139 143 ..144 .149 .157 ..158 .165 .168 175 .176 .178 овов„!85 .186 .189 194 197 205 .207 . 212 216 223 229 .
239 С++.... 242 .244 .251 254 .259 .265 271 272 .275 4.3. УКАЗАТЕЛЬ ТН!5 4.4. ОПЕРАТОРЫ 1чеуу и ВЕЕЕТЕ......................................................... 4.5, ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ ОБ ОПЕРАТОРАХ Ь[Е% и РЕЕЕТЕ... 4.6. Ссылки 4.7. ПЕРЕДАЧАссылок НАОБЪЕКТЫ. 4.8. ССЪ|ЛКА В КАЧЕСТВЕ ВОЗВРАШАЕМОГО ЗНАЧЕНИЯ ФУНКЦИИ 4.9. НЕЗАВИСИМЫЕ ссылки и ОГРАНИЧЕНИЯ НА ПРИМЕНЕНИЕ ссылок.
ГЛАВА 5. ПЕРЕГРУЗКА ФУНКЦИЙ 5,1. ПЕРЕГРУЗКА КОНСТРУКТОРОВ.. 5.2. СОЗДАНИЕ и ИСПОЛЬЗОВАНИЕ КОНСТРУКТОРОВ копий ...... 5.3. УСТАРЕВШЕЕ КЛЮЧЕВОЕ слово ОУЕКЕОАР. 5.4. АРГУМЕНТЫ по УМОЛЧАНИЮ. 5.5. ПЕРЕГРУЗКА и НЕОДНОЗНАЧНОСТЬ. 5.6, ОПРЕДЕЛЕНИЕ АДРЕСА ПЕРЕГРУЖЕННОЙ ФУНКЦИИ................... ГЛАВА 6. ВВЕДЕНИЕ В ПЕРЕГРУЗКУ ОПЕРАТОРОВ 6,1, ОСНОВЫ ПЕРЕГРУЗКИ ОПЕРАТОРОВ. 6,2. ПЕРЕГРУЗКА БИНАРНЫХ ОПЕРАТОРОВ.. 6.3. ПЕРЕГРУЗКА ОПЕРАТОРОВ ОТНОШЕНИЯ и ЛОГИЧЕСКИХ опеРлт 6.4. ПЕРЕГРУЗКА УНАРНЫХ ОПЕРАТОРОВ. 6,5. ДРУЖЕСТВЕННЫЕ ОПЕРАТОР-ФУНКЦИИ. 6.6.
ОСОБЕННОСТИ ИСПОЛЬЗОВАНИЯ ОПЕРАТОРА ПРИСВАИВАНИЯ.. 6.7. ПЕРЕГРУЗКА ОПЕРАТОРА ИНДЕКСА МАССИВА [1 ГЛАВА 7. НАСЛЕДОВАНИЕ 7.1. УПРАВЛЕНИЕ ДОСТУПОМ к БАЗОВОМУ КЛАССУ. 7.2. ЗАШИШЕННЫЕ ЧЛЕНЫ КЛАССА. 7.3. КОНСТРУКТОРЫ, ДЕСТРУКТОРЫ И НАСЛЕДОВАНИЕ.................. 7.4. МНОЖЕСТВЕННОЕ НАСЛЕДОВАНИЕ 7.5. ВИРТУАЛЬНЫЕ БАЗОВЫЕ КЛАССЫ ГЛАВА 8. ВВЕДЕНИЕ В СИСТЕМУ ВВОДА/ВЫВОДА С++ . 8,!. НЕКОТОРЫЕ БАЗОВЫЕ ПОЛОЖЕНИЯ СИСТЕМЫ ВВОДА/ВЫВОДА 8.2. ФОРМАТИРУЕМЫЙ ввод/вывод. 8.3. ФУНКЦИИ мотнО, Риес1В1оыО И гил.О 8.4.
МАНИПУЛЯТОРЫ ВВОДА/ВЫВОДА 8.5. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ ВЫВОДА 8.6. ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ ВВОДА. ГЛАВА 9. ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ ВВОДА/ВЫВОДА В С++ 9.1. СОЗДАНИЕ ПОЛЬЗОВАТЕЛЬСКИХ МАНИПУЛЯТОРОВ. 9,2. ОСНОВЫ ФАЙЛОВОГО ВВОДА!ВЫВОДА Содержание 282 288 292 .295 298 303 .304 3!3 .317 325 326 332 337 НЫХ .344 351 357 .358 Зб8 .376 9.3.
НЕФОРМАТИРУЕМЫЙ двоичный ввод/вывод........................... 9.4. ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ о ФУНКЦИЯХ двоичного ВВОДА7ВЫВОДА 9.5. ПРОИЗВОЛЬНЫЙ ДОСТУП 9.6. КОНТРОЛЬ СОСТОЯНЩ ВВОДА!ВЫВОДА...„.. 9.7, ПОЛЬЗОВАТЕЛЬСКИИ ввод/выводи ФАЙЛЪ| ГЛАВА 10. ВИРТУАЛЬНЫЕ ФУНКЦИИ 10.1, УКАЗАТЕЛИ НА ПРОИЗВОДНЫЕ КЛАССЫ. !0.2. ЗНАКОМСТВО с ВИРТУАЛЬНЫМИ ФУНКЦИЯМИ 10.3. ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ 0 ВИРТУАЛЬНЫХ ФУНКЦИЯХ..... 10.4. ПРИМЕНЕНИЕ ПОЛИМОРФИЗМА. ГЛАВА 11. ШАБЛОНЫ И ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ 11.1. РОДОВЫЕ ФУНКЦИИ.. 11.2. РОДОВЫЕ КЛАССЫ..
11.3. ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ ситУАЦИ Й. 11.4. ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ОБ ОБРАБОТКЕ ИСКЛЮЧИТЕЛЬ СИТУАЦИИ. 11.5. ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ, ВОЗБУЖДАЕМЫХ ОПЕРАТОРОМ |9Е% ГЛАВА 12. ДИНАМИЧЕСКАЯ ЦДЕНТИФИКАЦИЯ И ПРИЗРЕНИЕ ТИПОВ 12.1. ПОНЯТИЕ О ДИНАМИЧЕСКОЙ ИДЕНТИФИКАЦИИ ТИПА......... !2.2. ОПЕРАТОР ОУЗЧАМ!С САВТ 12,3. ОПЕРАТОРЫ сотчьт сАвт, КЕ1МТЕКРКЕТ САБТ и БТАТ1С САБТ.
ГЛАВА 13. ПРОСТРАНСТВА ИМЕН И ДРУГИЕ ТЕМЫ. 13.1. ПРОСТРАНСТВА ИМЕН. 13.2. ФУНКЦИИ ПРЕОБРАЗОВАНИЯ. 13.3. СТАТИЧЕСКИЕ ЧЛЕНЫ КЛАССА. 134. ПОСТОЯННЫЕ и МОДИФИЦИРУЕМЫЕ ЧЛЕНЫ КЛАССА.......... 13.5. ЗАКЛЮЧИТЕЛЬНЫИ ОБЗОР КОНСТРУКТОРОВ. 13.6. СПЕЦИФИКАТОРЫ СБОРКИ и КЛЮЧЕВОЕ слово АБМ............. 13.7. МАССИВЬ! В КАЧЕСТВЕ ОБЪЕКТОВ ВВОДА7ВЫВОДА ГЛАВА 14.
БИБЛИОТЕКА СТАНДАРТНЫХ ШАБЛОНОВ 14.1. ЗНАКОМСТВО с БИБЛИОТЕКОЙ СТАНДАРТНЫХ ШАБЛОНОВ.. !4.2. КЛАССЫ-КОНТЕЙНЕРЫ 14.3. ВЕКТОРЫ.. 14.4. Списки . 14.5. АССОЦИАТИВНЫЕсписки 14.б. АЛГОРИТМ3~1 14.7. СТРОКОВЫИ КЛАСС .... 383 384 393 396 ..401 404 .408 411 419 . 421 424 425 435 .446 453 .462 Самоучитель С++ 682 473 475 главы 1 главы 2 в целом главы 3 в целом главы 4 в целом главы 5 в целом главы 6 в целом. главы 7 в целом.
главы 8 в целом. ПРИЛОЖЕНИЕ А. НЕКОТОРЫЕ ОТЛИЧИЯ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ С И С++ ПРИЛОЖЕНИЕ В. ОТВЕТЫ НА ВОПРОСЫ И РЕШЕНИЯ УПРАЖНЕНИЙ ГЛАВА 1 Упражнения Проверка усвоения материала ГЛАВА 2 Повторение пройденного Упражнения. Проверка усвоения материала Проверка усвоения материала ГЛАВА 3 Повторение пройденного Упражнения Проверка усвоения материала Проверка усвоения материала ГЛАВА 4. Повторение пройденного Упражнения Проверка усвоения материала Проверка усвоения материала ГЛАВА 5 Повторение пройденного. Упражнения Проверка усвоения материала Проверка усвоения материала ГЛАВА 6 Повторение пройденного Упражнения Проверка усвоения материала Проверка усвоения материала ПЛАВА 7 Повторение пройденного Упражнения Проверка усвоения материала Проверка усвоения материала ГЛАВА 8 Повторение пройденного Упражнения Проверка усвоения материала Проверка усвоения материала ГЛАВА 9 Повторение пройденного Упражнения 475 475 481 483 483 485 .497 499 501 501 501 .507 509 513 .513 515 .525 527 528 528 531 538 541 542 542 543 555 .563 564 564 570 573 575 576 576 578 586 .