Б. Страуструп - Язык программирования С++. Специальное издание, 3-изд. Бином. 2004 (1160791), страница 2
Текст из файла (страница 2)
174 175 ..175 10 Оглавление 6.4. 6.6. Глава 7 7.1. 7.2 7.3 7А 7. 5 7 .б 7 . 7 7 .8 7.9. 7.10. Глава 8 8.1. 8.2. . 177 . 178 ......179 .179 .... 180 .181 .182 185 . 185 . 186 .186 .187 .189 . 190 , 191 . 193 . 194 ...,,..., „.... 194 в ................ „ ....,...............,. 1 9 5 .. 196 ... 197 199 203 205 205 .206 ... 209 209 .211 ..213 .. 213 .215 . 216 интерфейса .................. 218 ...,.........................,. 2 2 0 2 2 0 ...., .......... ........... 2 2 1 ...... ....................
2 2 2 ....... 2 2 5 . . 2 26 ....... 2 2 6 ......,. 2 27 2 2 8 ...,... 2 30 ,....... 2 3 1 ........ 2 3 2 6.3.2.1. Объявления в условиях ., 6.3.3. Инструкции циклов 6.3.3.1. Объявления в аког-гп|струкции 6.3А. 8осо .. Комментарии и отступы .. Советы Упражнения .....
Функции Объявления функций ., 7.1.1. Определения функций 7.1.2. Статические переменные. Передача аргументов 7.2.1. Массивы в качестве аргументов Возврашаемое значение Перегруженные имена функций,. 7.4.1. Перегрузка п возврашаел1ые типы .. 7.4,2. Перегрузка и область видимости. 7.4.3. Явное разрешение неоднозначности .„...„.....
7А.4. Разрешение в случае нескольких аргументо Лргументы по умолчанию. Неуказанное количество аргументов Указатель на функцию., Макросы .. 7.8.1. Условная компиляция ... Советы Упражнения.. Пространства имен и исключения .......... Разбиение на модули и интерфейсы Пространства имен .. 8.2.1.
Имена с квалификаторами. 8.2.2. Объявления пз1п8 8.2.3. Директивы из1п8 8.2А. Множественные интерфейсы. 8.2.4.1. Лльтернатпвы прп проектировании 8.2.5. Разрешение конфликтов пиен 8.2.5.1. Неименованные пространства имен ..... 8.2.6. Поиск имен .. 8.2.7. Псевдонимы пространств имен 8.2.8. Объединение пространств имен 8.2.8.1. Отбор. 8.2.8.2. Объединение и отбор 8.2.9. Пространства имен ц старый код 8.2,9.1. Пространства имен и С 8.2.9.2, Пространства имен и перегрузка 8.2.9.3.
Пространства имен открыты Исключения .. 8.3.1. сйгоьт и сагсЬ 8.3.2. Выбор исключений Оглавление 8.4. 8.5. Глава 9 9.1. 9.2. 9.3 9.4 9.5 9.6 Часть!1. Механизмы абстракции Глава'10. Классы . 10. 1 10.2 10.3 10.4 8.3.3. Исключения в программе калькулятора ...........................,....
8.3.3.1. Альтернативные стратегии обработки ошибок Советы .. Упражнения .. Исходные файлы н программы. Раздельная компиляция . Компоновка.. 9.2.1. Заголовочные файлы 9.2.2. Заголовочные файлы стандартной библиотеки .................... 9.2.3 Правило одного определения 9.2А. Компоновка кода, написанного не на Сж"- ............................. 9.2.5. Компоновка и указатели на функции Использование заголовочных файлов 9.3.1. Единственный заголовочный файл .. 9.3.2.
Несколько заголовочных файлов 9.3.2.1. Остальные модули калькулятора 9.3.2,2. Использование заголовочных файлов 9.3.3. Стражи включения . Программы .. 9,4 1, Инициализация нелокальных переменных 9.4.1.1. Завершение выполнения программы Советы . Упражнения, Введенг|е Классы . 10.2.1. Функции-члены 10.2.2. Управление доступом .. 10.2.3. Конструкторы .. 10.2А. Статические члены .. 10.2.5. Копирование объектов класса „ 10.2.6. Константные функции-члены ..
10.2.7. Ссылка на себя 10.2.7.1. Физическое и логическое постоянство ... 10.2.72. Объявленпеп1птаЫе. 10.2.8. Структуры и классы 10.2,9. Определение функции в классе. Эффективные тнпы, определяемые пользователем .....,... 10.3.1. Функции-члены 10.3.2. Функции-помощники .. 10,3,3. Перегрузка операторов .. 10.34.
Роль конкретных классов Объекты . 10.4.1. Деструкторы .. 10.4.2. Конструкторы по умолчанию 10.4.3. Конструирование и уничтожение ....... 2 3 4 . 2 3 8 .. 239 241 .. 241 .. 242 .. 245 ....... 24 7 .. 247 ....... 2 50 ....... 2 5 2 . 253 ... 253 .. 256 .....,. 2 58 ....... 2 6 0 .. 261 .. 262 .......
2 62 ...... 263 .. 265 267 269 .. 269 .. 270 .. 270 .. 271 ... 272 .. 274 .. 275 .. 276 ,. 277 278 ... 279 280 ........ 2 82 . 285 .. 287 .. 287 .. 288 .. 289 .. 289 .. 290 .. 291 Оглавление 12 .292 .. 292 .293 .294 ..... 295 . 296 ...296 .297 ..299 .299 .301 ...303 . 304 .305 .306 1О. 5 10.6 Глава 1 11.1. 11.2. 11.3 1 1.4 11. 5 1 !.6 11.7 11.8 11.9 11.10 11.11 11.12 11.13 11.14 ... 349 ......
349 10АА. Локальные переменные 10АА.1. Копирование объектов, 10А.5. Свободная память 10.4.6. Объекты в качестве членов . 10 А.6.!. Необходимая инициализапия членов.... ! 0.4.6.2. Члены-константы .. 10.4.6.3. Копирование членов,. 10.4.7. Массивы,, ..... 10.4.8. Локальная статическая память . 10А.9. Нслокальная память., 10.4.10.
Временные объекты .. !ОА.11. Размещение объектов .. 10АЛ 2. Объединения .. Советы .. Упражнения.. 1. Перегрузка операторов. Введение . „ Операторные функции .... 11.2.1. Бинарные и унарные операторы 11.2.2. Предопределенный смысл операторов ...,.................,... 11.2.3. Операторы н типы, определяемые пользователем ... 11.2.4. Операторы в пространствах имен . Тнп комплексных чисел,.
11.3.1. Операторы-члены и не-члены 11.3.2. Смешанная арифметика. 11.3.3. Инициализация .. 11.3.4. Копирование 11.3.5. Конструкторы и преобразования .. 113.6. Литералы,. 11.3.7. Дополнительные функции-члены 11.3,8. Функции-помощники Операторы преобразования. 11.4.!. Разрешение неоднозначности Друзья класса .. 11.5.1.
Понскдрузей.. 11.5.2. Друзья и члены. Большие объекты .. Важные операторы 11.7.1. Явные конструкторы Индексация . Вызов функции . Разыменование . Ипкремент и декремент Класс 5!г!п8. Советы Упражнения Глава 12. Производные классы 12.1. Введение . ... ЗО9 .309 .310 .311 ....... 3 1 2 ...... 3 1 3 . 3 1 4 . 3 1 5 .
3 1 6 . 3 1 7 . 3 1 8 . 3 1 9 . 3 20 . 32 1 3 2 1 . 3 2 2 .. 3 23 . 325 . 32 6 . 32 8 . 3 29 . 330 . 332 . 333 . 334 . 335 . 339 ..341 ......, 346 ...346 Оглавление 1 2.3 1 2.4 12.5 12.6 12.7 Глава 1 ра алгоритма ..... 13.7 Советы 13.8 13.9 Упражнения .. Глава 14. Обработка исключений 14.1. Обработка ошибок 14.1.1. Лльтернативный взгляд на исключения ..... 14.2. Группировкаисключений .. 14.2.1. Производные исключения 14.2.2. Композиция исключений,...,..... 13.1 13.2 13.3 13.4 13.5 13.6 Производные классы 12.2.1. с1)ункции-члены .. 12.2.2. Конструкторы и деструкторы 12.23.
Копирование 12.2А. Иерархия классов. 12.2.5. Поля типа. 12.2.6. Виртуальные функции . Лбстрактные классы .. Проектирование иерархий классов,. 12.4.1. Традиционная иерархия классов ., 12А.1А. Критика 12А.2. Абстрактные классы 12А.З. Лльтернативные реализации 12А.3.1. Критика .. 12.4,4. Локализация создания объектов Иерархии классов и абстрактные классы Советы Упражнения .. 3. Шаблоны Введение Простой шаблон строк ! 3,2.1.
Определение шаблона,. 132.2. Инстанцирование. 13.2.3. Параметры шаблонов 13.2А. Эквивалентность типов .. 13.2.5. Проверка типов .. Шаблоны функций .. 13.3.1. Лргументы шаблонов функций 13.3.2. Перегрузка шаблонов функций Использование аргументов шаблона для выбо 13.4.1. Параметры шаблонов по умолчанию ......... Специализация 13.5.1. Порядок специализаций 13.5.2. Специализация шаблонов функций .........,. Паследование н шаблоны .. 13.6.1.
Параметризация и наследование 13.6.2. Члены-шаблоны. 13.6.3. О~ношения наследования 13.6.3.!. Преобразования шаблонов .........., Организация исходного кода . .350 .352 .354 .355 .355 .356 .358 .361 .363 .363 .366 .367 .369 .371 .371 .372 .373 .373 377 .377 .378 .380 .381 .382 ,.382 .383 .384 .385 .386 ........ 389 ........ 390 ,, 3 92 . 394 ....... 396 . 399 . 4 00 ........ 4 0 1 4 02 ....... 403 4 04 .
407 407 ........ 4 1 0 ... 4'1 0 4 1 2 ......., 4 1 3 14 Оглавление 414 415 415 416 417 419 420 422 422 423 425 426 426 427 427 429 430 43! 431 432 433 434 14.3 14.4 14.5 14.6 14.7. 14.8. 14.9. 14.10. 14.11. 14.12. Глава 1 15.1. 15.2. 4. г . 437 . 439 . 441 .441 443 443 444 445 446 448 449 450 461 461 462 463 466 468 15.4 Перехват исключений ... 14.3.1.
Повторная генерация .. 14.3.2. Перехват всех исключений .. 14.3,2.1. Порядок записи обработчиков Управление ресурсами 14 А.1. Использование конструкторов и деструкторов 14.4.2. авто р(х 14А.3. Предостережение 14А.4. Исключения и оператор пса . 14.4.5. Исчерпание ресурсов 14.4.6. Исключения в конструкторах . 14.4.6.1. Исключения и инициализация членов ............................,.... 14.4.6.2. Исключения и копирование 14А.7. Исключения в деструкторах. Исключения, не являющиеся ошибками ..
Спецификации исключений 14.6.1. Проверка спецификаций исключений ! 4.6.2. Неожидаемые исключения .. !4.6.3. Отображениепсключений 14.6.3.1. Отображение исключений пользователем 14.68,2. Восстановление типа исключения .................................,....... Неперехваченные исключения Исключения и эффективность Лльтернатпвныс методы обработки ошибок ................................................... Стандартные исключения ... Советы Упражнения 5. Иерархии классов Введение и обзор . Множественное наследование 15.2.1. 1'азрешенпе неолнозпачности 15.2.2. Наследование и пз1пй-объявления. 15.2.3. Повторяюпшеся базовые классы.
15.2.3.!. Замещение !5.2А. Виртуальные базовые классы 15.2.4.1. Программирование виртуальных базовых классов .........451 15.2.5. Использованпемножественногонаследования .................................453 15.2.5.1. Замещение функций виртуальных базовых классов ......455 Управ. ление доступом 456 15.3.1. Защищенные члены ....,,........................,........
458 15.3.1.1. Использование защищенных членов 15.3.2. Доступ к базовым классам. 15.3.2.1. Множественное наследование и управленц доступом.. 15.3.2.2. цз!п8-объявления и управление доступом Информация о типе на этапе выполнения 15А.1, Динамическое приведение оупаш1с сазг 15А.1.1. Динамическое приведение ссылок 15.4.2 Навигация по иерархии классов ... ! 5.4.2.1. Статическое и динаьшческое приведение 15 Оглавление ..... 469 ....А 69 ..... 471 ....,472 .474 А76 .
477 .479 . 479 .. 481 .481 483 Глава 1 16.1. 16.2 аторы ..... 16.3 16А. 16.5. Глава 1 17.1. 17.2 слияние... 15А.З. Конструирование и уничтожение объектов класса..... 15А.4. Туре!г! и дополнительная информация о типе .............. 15.4А.1. Дополнительная информация о типе 15А.5. Разумное и неразумное использование КТТ! ............... 15.5. Указатели на члены 15.5.1. Базовые и производные классы .. 15.6. Свободная память. 15.6.1. Выделение памяти под массив .. 15.6.2.