Вы находитесь на странице: 1из 573

В.В.

Подбельский
ЯЗЫК СИ ++
5-е изд. - М.: Финансы и статистика, 2001. - 560 с.
Подробно рассмотрены синтаксис, семантика и техника программирования
объектно-ориентированного языка Си++. Приведено большое количество
программ, иллюстрирующих возможности и особенности языка Си++. В отличие
от работ, в которых язык Си++ вводится как расширение своего предшественника
языка Си, в данной книге он рассматривается как самостоятельный язык
программирования. Для изучения материала достаточно, если читатель владеет
основами информатики и навыками программирования на любом
алгоритмическом языке в объеме стандартного курса по программированию для
среднего учебного заведения (4-е издание - 1999 г.).
Для студентов, преподавателей, лицеистов, школьников, а также для
специалистов, желающих самостоятельно изучить язык Си++.
ОГЛАВЛЕНИЕ
Предисловие к 5-му изданию 3
Предисловие к 1-му изданию 4
Глава 1. НЕФОРМАЛЬНОЕ ВВЕДЕНИЕ В СИ++ 7
1.1. Простые программы на языке Си++ 7
Глава 2. ЛЕКСИЧЕСКИЕ ОСНОВЫ ЯЗЫКА СИ++ 17
2.1 Общие сведения о программах, лексемах и алфавите 17
2.2. Идентификаторы и служебные слова 19
2.3. Константы 20
2.4. Знаки операций 31
2.5. Разделители 47
Глава 3. СКАЛЯРНЫЕ ТИПЫ И ВЫРАЖЕНИЯ 54
3.1. Основные и производные типы 54
3.2. Объекты и их атрибуты 59
3.3. Определения и описания 74
3.4. Выражения и преобразования типов 80
Глава 4. ОПЕРАТОРЫ ЯЗЫКА СИ++ 90
4.1. Последовательно выполняемые операторы 90
4.2. Операторы выбора 92
4.3. Операторы цикла 96
4.4. Операторы передачи управления 101
Глава 5. АДРЕСА, УКАЗАТЕЛИ, МАССИВЫ, ПАМЯТЬ 108
5.1. Указатели и адреса объектов 108
5.2. Адресная арифметика, типы указателей и операции над ними 116
5.3. Массивы и указатели 130
5.4. Многомерные массивы, массивы указателей, динамические массивы 144
5.5. Организация памяти в процессорах 80x86 и указатели языка Си++ 157
Глава 6. ФУНКЦИИ, УКАЗАТЕЛИ, ССЫЛКИ 169
6.1. Определения, описания и вызовы функций 169
6.2. Функции с переменным количеством параметров 176
6.3. Рекурсивные функции 186
6.4. Подставляемые (инлайн-) функции 190
6.5. Функции и массивы 193
6.6. Указатели на функции 204
6.7. Ссылки 215
6.8. Перегрузка функций 227
6.9. Шаблоны функций 230
Глава 7. СТРУКТУРЫ И ОБЪЕДИНЕНИЯ 237
7.1. Структура как тип и совокупность данных 237
7.2. Объединения разнотипных данных 250
7.3. Битовые поля структур и объединений 258
Глава 8. ПРЕПРОЦЕССОРНЫЕ СРЕДСТВА 263
8.1. Стадии и команды препроцессорной обработки 263
8.2. Замены в тексте 265
8.3. Включение текстов из файлов 268
8.4. Условная компиляция 271
8.5. Макроподстановки средствами препроцессора 274
8.6. Встроенные (заранее определенные) макроимена 279
Глава 9. КЛАСС КАК АБСТРАКТНЫЙ ТИП 281
9.1. Класс как расширение понятия структуры 281
9.2. Конструкторы, деструкторы и доступность компонентов класса 287
9.3. Компонентные данные и компонентные функции 295
9.4. Определение компонентных функций 303
9.5. Указатель this 309
9.6. Друзья классов 315
9.7. Расширение действия (перегрузка) стандартных операций 322
Глава 10. НАСЛЕДОВАНИЕ И ДРУГИЕ ВОЗМОЖНОСТИ КЛАССОВ 336
10.1. Наследование классов 336
10.2. Множественное наследование и виртуальные базовые классы 349
10.3. Виртуальные функции и абстрактные классы 359
10.4. Локальные классы 373
10.5. Классы и шаблоны 375
Глава 11. ВВОД-ВЫВОД В ЯЗЫКЕ СИ++ 379
1.1. Общие сведения о библиотеке потокового ввода-вывода 379
1.2. Стандартные потоки для базовых типов 385
1.3. Форматирование данных при обменах с потоками 398
1.4. Ввод-вывод для типов, определенных пользователем 409
1 5, ФУНКЦИИ для обмена с потоками 415
1 6. Строковые потоки (обмены в основной памяти) 420
1 1.7. Работа с файлами 431
Глава 12. ОБРАБОТКА ОСОБЫХ (ИСКЛЮЧИТЕЛЬНЫХ) СИТУАЦИЙ 445
12.1. Общие принципы механизма обработки исключений 445
12.2. Синтаксис к семантика генерации и обработки исключений 453
12.3. Обработка исключений при динамическом выделении памяти 465
12.4. Функции, глобальные переменные и классы поддержки механизма 475
исключений
12.5. Конструкторы и деструкторы в исключениях 479
12.6. Динамическая идентификация типов (RTTI) 481
12.7. Опции компилятора, относящиеся к обработке исключений и 486
динамическому определению типов (RTTI)
Приложение 1. Таблица кодов ASCII 488
Приложение 2 Константы предельных значений 494
Приложение 3. Стандартная библиотека функций языка Си 497
Приложение 4. Графическая библиотека ВС++ 509
Приложение 5. Классы и компонентные функции библиотеки потокового 519
ввода-вывода в Си++
Приложение 6. Библиотечные классы и их компонентные функции 528
ЛИТЕРАТУРА 538
УКАЗАТЕЛЬ СИМВОЛОВ 540
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 542
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
A-Z Адреса байтов памяти 158
ASCII-код, см. Кодировка ASCII Адресация памяти 159
BC++4 Алфавит языка Си++ 18
BGI510 Аргумент функции, см. Формальные
EasyWin 469 параметры; Фактические
ESC-последовательность 26, 263 параметры
far-указатель 161 Арифметический тип, см. Скалярный
huge-указтепь 164 тип
IDE 469,486 Арифметическое выражение 86
inline-функция 190, 275, 303 Арифметическое преобразование, см.
l-значение 37, 59, 302, 303 Операция преобразования
MS-DOS 10 Б
Microsoft Windows 469 Базовый класс 52,336,339
near-указатель 160 - - абстрактный 366
RTTI, см. Динамическая - - виртуальный, см. Виртуальный
идентификация типов базовый класс
TC++ 4 - - непосредственный, см.
A Непосредственный базовый класс
Абстрактный класс 365 - - непрямой, см. Непрямой базовый
Абстрактный тип 281 класс
Абстракция данных 281 - - общий 358
Агрегатный тип 59 - - прямой, см. Непосредственный
Аддитивная операция 34 базовый класс
Адрес, см. Операция взятия адреса Базовый тип 57, см. также Тип
данных - - функции 41, 84, 173
Бинарные операции 33 Выражение 80, 82
Битовое поле 258 - - арифметическое 86
Ближний указатель, см. near- леводопустимое, см. Леводопустимое
указатель выражение
Блок 48,62 - - первичное 81
- - и составной оператор 92 - - постфиксное 83
- - контролируемый, см. - - праводопустимое 60
Контролируемый блок - - префиксное 32
- - обработчика исключений 446 Вычитание, см. Операция вычитания
Буфер потока 380, см. также Поток Г
В Генерация исключений 448, 453, 457
Ввод, см. Операция ввода, см. также Глобальная область памяти, см.
Поток ввода, Потоковый ввод- Область памяти глобальная
вывод - переменная
Вещественная константа, см. - - _new_handler 465
Константа вещественная - - __throwExceptionName 478
Видимость, см. Область видимости - - __tfcowFifctfanie478
Виртуальная функция 359 - - __thrpwLineN!W4ber 478
- - дружественная 365 Д
- - - и производный класс 363 Дальний указатель, см. far-указатель
- чистая 365 Данные, абстракция, см. Абстракция
Виртуальный базовый класс 356 данных
Вложение блоков 92 - внешние, см. Внешние данные
комментариев 18 - класса, см. Компонентные данные
- - контролируемых блоков 459 класса
- - переключателей 103 - тип, см. Тип данных
- - составных операторов 92 Декремент, см. Операция декремент
- - условных операторов 93 Деление, см. Операция деления
- - циклов 101 Деструктор 294, 346
Внешнее связывание, см. Связывание - вызов 346
внешнее - явный 347
Внутреннее связывание, см. Десятичная константа, см. Константа
Связывание внутреннее десятичная
Возвращаемое значение 170 Динамическая идентификация типов
Восьмеричная константа, см. 481,486
Константа восьмеричная Директива препроцессора 17, 53, 263
Встраиваемая функция, см. inline- #264,278
функция - #ddme 264, 265
Вывод, см. Операция вывода, см. - #elif 264, 273
также Поток вывода, - #else 264, 272
Потоковый ввод-вывод - #endif 264,272
Вызов деструктора явный 347 - #error 264, 278
- #if 264, 271 - - stdarg.h52, 181
- #ifdef 264, 272 - - stdlib.h 212,432, 501,507
- #ifndef 264,272 - - stdio.h 379, 500
- #include 9,174,264,268 - - string.hl39,214,422,501
- #line264,278 - - strstrea.hl 1,384,420
- #pragma 264,278 - - sys\stat.h 432
- #undef 264, 268 - - typeinfo.h481
Доступ к базовому классу из Зарезервированное слово, см.
производного класса 338, 341 Служебное слово
- - к производному классу из Знаки операций 18, 31
базового класса 341 Значение, возвращаемое функцией
- - к элементам массива 151 170
Дружественная функция 315 - леводопустимое, см. l-значение
- - виртуальная, см. Виртуальная - параметра по умолчанию 176
дружественная функция - праводопустимое 32
Дружественный класс 319 - указателя 108
З - - - нулевое, см. Нулевой указатель
Заголовок переключателя, см. И
Оператор switch Идентификатор 18,19,44,54,83
- функции 7 - класса 281
- цикла, см. Цикл - массива 237
Заголовочный файл 175, 269 - область действия, см. Область
- alloc.h 504 действия идентификатора
- - compkx.h 283,528 - - процессорный 265
- - conio.h 309,316, 398, 504, 511 Иерархия классов 289,336
- - constrei.h 384 - - библиотеки ввода-вывода382
- - - cstring.h466,531 - - виртуальных 357
- - ctype.h 499 - - производных 349
- - dos.h 161,256,506 - - объектов 336
- - except.h 466, 477 Имя 82
- - fcntLh 432 - массива 133
- - float.h495 - основное 248
- - fstream.h 384, 433 - переменной 59
- - graphfcs.h306,345,509 - повторное использование 65, 66, 79
- - io.h432 - указателя 44
- - iomanip.h 407, 525 - уточненное 239, 241, 252, 283
- - iostream.h 7,175, 269,384, 379 - функции 169
- - limits.h 494 Индекс массива 41,130
- - matkh 497 Индексация 83, см. также Операция
- - mem.h 506 []
- - new.h466 Инициализатор 75,1Q9, 215,292
- - process.h 190 Инициализация класса 288, см.
- - signal.h 508 также Конструктор
- константы 19 - strstream 383,427
- массива 49,131 - typeinfo481
- - динамического 155 - xaffloc 466
- - классов 286 - xmsg466
- - многомерного 145 - абстрактный 365
- объединения 257 - базовый, см. Базовый класс
- объекта 70 - данные, см. Компонентныеданные
- переменной 55,75 класса
- ссылки 215,224 - дружественный, см.
- - - на объект класса 283 Дружественный класс
- статического компонента класса 286 - инициализация, см. Инициализация
- структуры 49, 239 класса
- указателя 109, 241 - компонент, см.
- - - на функцию 206 Компонентныеданные класса
Инкапсуляция 5, 289 - локальный, см. Локальныйкласс
Инкремент, см. Операция инкремент - метод, см. Компонентнаяфункция
Исключение 445,446,453 класса
- Bad_tipeid 482 - наследник, см. Класс производный
- xalloc 465 - определение, см.
- обработка, см. Обработка Определениекласса
исключений - памяти 61,75
- обработчик, см. - - auto 61
Обработчикисключений - - register 61,115
- порождение, см. Генерация - - - static 61,73,297
исключений - - extern 61,69,73,169
Исключительная ситуация, см. - полиморфный, см. Полиморфный
Исключение класс
К - порождающий, см. Базовыйкласс
Класс 59, 281 - порожденный, см. Производный
- complex 528 класс
- constream 383 - потомок, см. Производныйкласс
- filebuf525 - производный, см.
- fstream 383,434,526 Производныйкласс
- fstreambase 434 - семейство, см. Шаблон семейства
- ifstream 383,434,526 классов
- ios383,519 - - функции, см. Функция класса
- iostream383 Ключевое слово, см. Служебное
- istream383,417, 521 слово
- istrstream 383,420 Кодировка ANSI (Кодовая таблица
- ofstream 383,434,526 MS Windows) 492
- oslream383,416,419, 522 - - ASCII 118, 254,488
- ostrstream 383,424 - - OEM (Кодовая таблица MS-DOS)
- string 531 490
Команда препроцессора, см. Леводопустимое выражение 59, см.
Директива препроцессора также l-значение
Комментарий /* */ 8,174, 266 Лексема», 17,18, 277
- - // 7,8,174 Лексический элемент, см. Лексема
Компонент класса, см. Литерал, см. Константа
Компонентные данные класса Литерная константа, см. Константа
Компонентная функция класса 282 символьная
- дружественная, см. Дружественная Логическая операция, см. Операция
функция логическое И (ИЛИ, НЕ)
- - статическая 298 Локализация 92, см. также Область
Компонентные данные класса 282, видимости
295 Локальный класс 373
- - - защищенные 315, 339, см.также М
Модификатор protected Макроопределение 48, см. также
- - - нестатические 299 Директива препроцессора
- - - общедоступные 315, 339, см. #define
также Модификатор public - FP_OFF() 164
- - - собственные 299, 339, см. также - FP_SEG() 164
Модификатор private - MK_FP() 161
- - - статические 285, 373 - va_arg()52,182
Компоновка, см. Связывание - va_end()52, 183
Консольный поток, см. Поток - va_start() 52, 182
консольный - встроенное 279
Константа 18, 20 Макрос, см. Макроопределение
- восьмеричная 20, 21 Манипулятор 405
- вещественная 20, 22 - без параметров 406
- десятичная 20 - - dec 406
- литерная, см. Константа символьная - - endl 407
- перечислимая 20, 24 - - ends 407, 428
- с плавающей точкой, см. Константа - - flush 407
вещественная - - hex 118, 394,406
- символьная 20, 26, 30 - - oct 407
- строковая 20, 28 - - ws 407
- - на нескольких строках 29 - с параметрами 407
- - целая 20, 21 - resetiosflags() 408
- - шестнадцатеричная 20, 21 - - setbase() 407
Конструктор класса 288 - - setfdl() 408
- - X (const X&) 291 - setiosflags() 408
- - абстрактного 366 - setprecision() 408
- - виртуального 356 - setw() 408
- - стандартный (по умолчанию)291 Массив 110, 237
Контролируемый блок 445 - динамический 154, 200
Л - доступ к элементам, см. Доступ к
элементам массива - protected 289, 465, см.
- и указатель 130,195 такжеКомпонент класса
- имя, см. Имя массива защищенный
- индекс, см. Индекс массива - public 289, 297, см. также
- инициализация, см. Инициализация Компонент класса общедоступный
массива - volatile 80
- многомерный 144,196 Н
- объединений 257 Направленный ациклический граф
- - объектов классов 283,286 (НАГ) 338,349
- описание, см. Описание массива Наследование 336
- определение, см. Определение - доступа к компоненту класса338
массива - множественное 338,350
- параметр 193 - неоднозначное 359
- символьный 30 Начальные значения параметров, см.
- указателей 149 Значение параметра по
- - на строки 212 умолчанию
- - на функции 207 Неоднозначность при наследовании
Метка 52, 91 359
- - case в переключателе 90,94 - при обращении к компонентным
- - default в переключателе 90,94 данным класса 311
Метод класса, см. Компонентная - при сопоставлении операторов if и
функция класса else 93
Минус, см. Операция минус унарный Непосредственный базовый класс
Многомерный массив, см. Массив 349
многомерный Непрямой базовый класс 352
Модификатор, см. также Служебное Нормализованный указатель, см.
слово huge-указатель
- _cs 166 Нулевой указатель (NULL) 44, 98,
- _ds 166 110,120
- _es 166 О
- _seg 166,167 Область видимости 92
- _ss 166 - - объекта 65,68
- cdecl 80, 181 - - действия 61
- const 79,113, 219 - - идентификатора 62,65
- far 80,160 - - оператора 93,107
- friend 315 - - ссылки 219
- huge 80,160 - - памяти глобальная 286
- interrupt 80 Обобщенный пробельный символ,
- near 80,160 см. Пробел обобщенный
- pascal 80,181 Обработка исключений 460
- private 289, 297, 465, см. Обработчик исключений 446
такжеКомпонент класса Обращение к функции, см. Вызов
собственный функции
Объединение 250, 387 - [] 41,46,47,130,218
- безымянное 257 - 048
Объединяющий тип 58,252 - ... 52
Объект 59 - : 51
- класса 296 - ; 51, 90
Объектно-ориентированное - delete 45,71,143,201
программирование 5 - new 43,71,138,154,249,465- и массив
- проектирование 5,336 - sizeof 22,33,130,138,154, 218
Оператор 90, 108, см. также - typeid481
Служебное слово - аддитивная 34
- break 95,104 - бинарная 33
- continue 107 - больше или равно, чем (>«•) 35,46
- do 98 - больше, чем (>) 35,46
- else 92 - ввода (») 46, 385,390
- for 50, 99 - взятия адреса (в) 32, 46,
- goto 102,448,462 109,115,121,130,218
- if 14 - взятия остатка (%) 34,46
- return 14, 103,170,410 - выбора компонентов
- switch 90,92,94 структурированного объекта (->,
- throw 445,458,487 .)39,241,284,296,327
- while 42,97,255 - вывода («) 46, 385, 390
- безусловного перехода, см. - вычитания (-) 25, 32, 34, 46, 121
Оператор goto - декремент (--) 33,46, 121, 124
- возврата из функции, см. Оператор - деления (/) 34,46
return - запятая (,) 40,46,50
- выбора, см. Метка case в - индексации, см. Операция [ ]
переключателе - инкремент (++) 32,46,121,124
- выражение 90 - логическое И (66) 36, 46
- переключатель, см. Оператор switch - - ИЛИ (II) 36,46
- присваивания, см. Операция - - НЕ(!)32,46
присваивания - меньше или равно, чем (<=) 35,46
- пустой 91 - меньше, чем (<) 35, 46
- составной, см. Составной оператор - минус унарный (-) 32
- условный, см. Оператор if - мультипликативная 34
- - цикла 96, см. также Цикл - над указателями 120
Операционная система MS-DOS, см. - неравно(!=)35,46
MS-DOS - отношения 35,46
- - MS Windows, см. Microsoft - плюс унарный (+) 32
Windows - поразрядное И (6) 34,46
Операция - - ИЛИ (|)34,46
- # 276 - - - ИСКЛЮЧАЮЩЕЕ (^) 35, 46
- ## 277 - - НЕ (~)32.46
- () 41,46,47,173 - - преобразования 86
- - - необратимость 88 177
- обратимость 88 - чистой виртуальной 366
- операндов в - шаблона функций 235
арифметическихвыражениях 86,87 - элементов класса 295
- ссыпок 86 Определение 54
- стандартное, см. Операция - и описание 62,74,92
преобразования типов - класса 64,281
- типов 46,85 - базового 352
- явного, см. Операция явного - виртуального 356
преобразования типов - производного 339
- - указателей 86 - массива 131
- на компоненты классов 86 - объединения
- префиксная 32 - переменной 59
- приведения, см. Операция - перечисления 24
преобразования - ссылки 215, 220
- приоритет, см. Приоритет операций - - на функцию 223
- присваивания (=) 37,38,46,53 - указателя 44, 108
- разыменования (*) 32, 46, 52,241 - функции 51, 170
- - указателей на компоненты классов - виртуальной 362
(.*, ->*)302 - - повторное 363
- с компонентами классов 39,46 - компонентной 303
- сравнения на равенство (==) 35,46 - - с переменным числом параметров
- сдвига влево (<<) 34,46 52, 178
- сдвига вправо (>>) 34,46 - - шаблона
- сложения (+) 32,34,46 - классов 376
- указания области видимости - функций 230
(::)39,46 Основное имя, см. Имя основное
- умножения (*) 34,46,52 Особая ситуация, см.
- - условная (?:) 42,46 Исключение Остаток, см.
- уточнения области действия (::) 283 Операция взятия остатка
- функция 322,409 Отношения, см. Операция отношения
- явного преобразования типов П
42,48,85,111,116 Память, выделение автоматическое,
Описание 50 см. Класс памяти auto (register)
- внешних ссылок 220. - динамическое, см. Операция new
- и определение, см. Определениеи - явное, см. Операция new
описание - локальная, см. Класс памяти tuto
- компонентов класса 220 - ПЭВМ 157
- массива 131 - - регистровая, см. Класс памяти
- - явное 132 register
- переменной 55 Параграф памяти ПЭВМ 158
- функции 51,63,90,172 Параметр фактический, см.
- с переменным числом параметров Фактические параметры
- формальный, см. Порядок вызова деструкторов класса
Формальныепараметры 288, 291
- шаблона, см. Список параметров - - конструкторов класса 295
шаблона Поток 380
Параметр-ссылка 221 - безымянный 426
Перегрузка 32, 42, 81, 322 - ввода 383, 387, см. также
- - дружественной функции 333 Стандартный поток ввода
-операции ввода-вывода 388, 429 - включение данных 386
- - -м- 329, 332 - 332 - входной, см. Поток ввода
- - [] 376 - вывода 383, 387, см. также
- - << 388, 409 Стандартный поток вывода
- - >> 388, 413 - выходной, см. Поток вывода
- new 474 - запись данных, см. Поток,
- индексации 376 включение данных
- функции 227, 232 - извлечение данных 386
- шаблона функций 236 - консольный 382
Переключатель, см. Оператор switch - стандартный, см. Стандартный
Переменная 59 поток
- автоматическая 71, см. такжеКласс - строковый 382, 420
памяти auto - входной 420
- глобальная, см. Глобальная - выходной 424
переменная - двунаправленный 427
- индексированная 57, 147, см. - файловый 382
также Индексация - чтение данных, см. Поток,
- локальная 40 извлечение данных
- регистровая, см. Регистровые Потоковый ввод-вывод 379, 519
переменные Преобразование, см. Операция
- - статическая 61 преобразования
Переполнение 55 Препроцессор 263
Перечислимая константа, см. - - команды, см. Директивы
Константа перечислимая препроцессора
Перечислимый тип, см. Скалярный Префиксная операция 32
тип Приведение, см. Операция
Плюс, см. Операция плюс унарный преобразования
Побочные эффекты 81, 84, 406 Приоритет операций 46
Подмена функции, см. Виртуальная Присваивание, см. Операция
функция присваивания
Поле битовое, см. Битовое поле Пробел обобщенный 392
Полиморфизм 5, 482 Программирование объектно-
Полиморфный класс 360, 482 ориентированное 5
Поразрядные операции, см. Операция Продолжительность существования
поразрядное И (ИЛИ, НЕ) объектов 69
Порождение исключений 448, 453 - статическая 61, 70
- локальная 71 Сегментная организация памяти 159
- динамическая 71 Сегментная часть адреса 158
- участка памяти 45 Сегментные указатели 166, 167
Проектирование объектно- Сигнатура 409
ориентированное 5 - функции 169
Производные типы 57, 116, 247, 281 - Символ null, ' \0' 396
Производный класс 52, 336 - '\n' 263
Пространство имен 64 - подчеркивания, '_' 19
Прототип, см. Описание Ситуация исключительная, см.
Р Исключение
Разделитель 18, 47 - особая, см. Исключение
- - пробельный 17 Скалярный тип 59
Разыменование указателей см. Скэн-код 254
Операция разыменования Слово зарезервированное, см.
Ранги операций, см. Приоритет Служебное слово
операций - ключевое, см. Служебное слово
Расширение действия операции, см. - памяти 158
Перегрузка операции Сложение, см. Операция сложения
Регистровая переменная Служебное (ключевое) слово - _CS,
- - _CS 166 см. Регистровая переменная
- - _DS166 _CS
- - _ES 166 - _cs, см. Модификатор _cs
- - _SS 166 - _DS, см. Регистровая переменная
Регистры сегментов 159 _DS
Режим EasyWin 469 - _ds, см. Модификатор _ds
Рекурсивная функция 187 - - - _ES, см. Регистровая переменная
Рекурсия 81, 187 _ES
"Родовое" программирование 119 - _es, см. Модификатор _es
С - - - _seg, см. Модификатор _seg
Связывание внешнее 61, 72 - _SS, см. Регистровая переменная
- - внутреннее 61, 72 _SS
- - динамическое 362 - _ss, см. Модификатор _ss
- - отложенное, см. Динамическое - auto, см. Класс памяти auto
связывание - - - break, см. Оператор break
- - позднее, см. Динамическое - - - case, см. Метка case в
связывание переключателе
- - раннее, см. Статическое - - - catch 445, 454, 487
связывание - - cdecl, см. Модификатор cdecl
- - статическое 362 - - char, см. Тип char
Сдвиг вправо, см. Операция сдвига - - - class 52, 230
вправо - - const, см. Модификатор const
- влево, см. Операция сдвига - - continue, см. Оператор continue
влево - - default, см. Метка default в
переключателе - union 52, 289, см. также
- - delete, см. Операция delete Объединяющий тип
- - do, см. Оператор do - - unsigned, см. Тип unsigned
- - double, см. Тип double - - virtual 356
- - else, см. Оператор else - - void, см. Тип void
- enura 24, см. также Перечислимые - volatile, см. Модификатор volatile
константы - - while, см, Оператор while
- extern, см. Класс памяти - - список 19
extern Смещение 158
- far, см. Модификатор far Составной оператор 91
- float, см. Тип float - - и блок 92
- for, см. Оператор for Спецификатор
- friend, см. Модификатор friend - inline 190, см. также inline-
- goto, см. Оператор goto функция
- huge, см. Модификатор huge - typedef 57, 86, 208, 247
- if, см. Оператор if - чистый 365
- - - inline, см. Спецификатор inline Список инициализации, см.
- int, см. Тип hit Инициализация
- interrupt, см. Модификатор interrupt - - параметров шаблона 230, 233, 378
- long, см. Тип long Сравнение, см. Операция сравнения
- near, см. Модификатор near на равенство
- new, см. Операция new Ссылка 53, 59, 215
- operator 322 - на константу 219
- pascal, см. Модификатор pascal - на параметр 221
- private, см. Модификатор private - на структуру 242
- protected, см. Модификатор - на функцию 223
protected - определение, см. Определение
- public, см. Модификатор public ссылки
- - register, см. Класс памяти register Стандартный поток 385
- return, см. Оператор return - - - ввода cin 47, 175, 385
- short, см. Тип short - - вывода cout 7, 8, 47, 117, 140, 385
—signed 55, 87 - ошибок cerr 385, 448
- - - sizeof, см. Операция sizeof - - предопределенный обмен
- - static, см. Класс памяти static данными 387
- struct 52, 282, 289, см. Также - - протокола clog 385
Структурный тип Статус доступа 338
- - switch, см. Оператор switch Стек 122, 181, 186
- template 230, см. также Шаблон Строка 97
- this, см, Указатель this Строковая константа, см. Константа
- throw, см. Оператор throw строковая
- - - try 445, 454 Строковый поток, см. Поток
- - typedef, см. Спецификатор typedef строковый
- - - typeid, см. Операция typeid Структура 237, см. также
Структурный тип - скалярный, см. Скалярный тип
Структурный тип 58, 238, 240, 252 - структурный, см. Структурный тип
Сфера действия, см. Область - указателя 44
действия - - void*, см. Тип void*
Т - функции 59, 169
Тег, см. Структурный тип - чисел с плавающей точкой, см.Тип
Тело float, Тип double
- - функции 8, 170 Точность простая, см. Тип float
- - цикла 96, см. также Цикл - - двойная, см. Тип double
Технология "copy-on-write" 532 У
Тип Указание области видимости, см.
- char 25, 54, см. также Символьные Операция указания области
константы видимости
- double 23 Указатель 147
- float 12, 23, 43 - this 81, 309
- int 12, 21 - ближний, см. near-указатель
- long 15, 21 - дальний, сл«.far-указатель
- long double, 23 - значение, см. Значение указателя
- short 33, 55, 87 - и массив, см. Массив и указатель
- unsigned 21 - инициализация, см. Инициализация
- void 8, 104, 170, 218 массива
-void* 118 - константа 108, 133, 220, 309
- абстрактней, см. Абстрактный тип - константный, см. Указатель-
- агрегатный, см. Агрегатный тип константа
- базовый, см. Базовый тип - массив, см. Массив указателей
- беззнаковый, см. Тип unsigned - на компонент класса 59, 300
- возвращаемого значения - void, см. - на константу 115-- на массив 195
Тип void - на объект !08- класса 299
- ссылка 224, 231 - на постоянную, см. Указатель на
- - данных 21, 56 константу
- - абстрактный, см. Абстрактный тип - на статический компонент класса
- знаковый, см. Тип signed 299
- класс, см. Класс - на строку 79
- объединяющий, см. Объединяющий - на структуру 249
тип - на указатель 128
- перечислимый, см. Перечислимый - на функцию 108, 204, 210
тип - нормализованный, см. huge-
- преобразование, см. указатель
Преобразование типа - нулевой, см. Нулевой указатель
- производный, см. Производные - описание, см. Описание указателя
типы - определение, см. Определение
- результата, см. Тип возвращаемого указателя
значения - переменная 143
- пустой, см. Нулевой указатель - - форматирования 402
- родовой, см. Тип void* Формальные параметры 169
- сегментный, см. Сегментные Форматирование данных при вводе-
указатели выводе 398
Умножение, см. Операция - - флаг, см. Флаг форматирования
умножения Функция 41
Условная операция, см. Операция - abort() 460, 468, 476
условная - bioskey() 254
Условный оператор, см. Оператор if - circk() 344
Уточнения области действия, см. - close() 439
Операция уточнения области - closegraph() 309
действия - concat() 184
Уточненное имя, см. Имя уточненное - creat() 432
Ф - exit() 190, 468
Файл заголовочный, см. - floodfill() 344
Заголовочный файл - FP_OFF(), см. Макроопределение
- текстовый 17 FP_OFF()
Файловый поток, см. Поток - FP_SEG(), см. Макроопределение
файловый FP_SEG()
Фактические параметры 84 - fopen() 434
Флаг 394, 399 - free() 71
- ios::ate424 - getch() 309, 316, 398
- ios::app 424 - getcoIor() 344
- ios::beg429 - getimage() 344
- ios::cur 429 - gotoxy()316
- ios::dec400 - imagesize() 344
- ios::end429 - initgraph() 308
- 5os::fixed401 - int86() 256
- ios::hex400 - main() 7, 169
- ios::in427 - malloc()71, 138
- ios::internal 400 - MK_FP(), см. Макроопределение
- ios::left400 MK_FP()
- ios::oct 400 - open() 434, 527
- ios::out 424 - printf() 52, 184, 398
- ios::right 400 - putch() 316
- ios::scientific 400 - putimage() 344
- ios::showbase 400 - qsort()211
- ios::showpoint 400 - scanf() 52, 184, 398
- ios::showpos 400 - set_new_handler() 466
- ios::skipws 400 - set_terminate() 476
- ios::stdio 400 - set_unexpected() 477
- ios::unitbuf 400 - strcmp()214
- ios::uppercase 400 - strcpy() 142, 422
- strkn() 139 функций
- terminate() 457, 476 - сигнатура, см. Сигнатура функции
- unexpected() 460, 477 - ссылка, см. Ссылка на функцию
- va_arg(), см. Макроопределение - указатель, см. Указатель на
va_arg() функцию
- va_end(), см. Макроопределение Ц
va_end() Целая константа, см. Константа целая
- va_start(), см. Макроопределение Целочисленный тип, см. Тип int
va_start() (long, short, unsigned)
- виртуальная, см. Виртуальная Цикл 96
функция - бесконечный 98, 99, 100
- и ссылки, см. Параметр-ссылка - итерационный, см. Оператор for
- имя, см. Имя функции - с постусловием, см. Оператор do
- класса, см. Компонентная функция - с предусловием, см. Оператор while
класса Ч
- компонент класса, см. Чисто виртуальная функция 365
Компонентная функция класса Ш
- обращение к, см. Вызов функции Шаблон классов 376
- операция, см. Операция-функция - - семейства функций, см. Шаблон
- описание, см. Описание функции, функций
Прототип - классов, см. Шаблон классов
- определение, см. Определение - список параметров, см. Список
функции параметров шаблона
- перегруженная, см. Перегрузка - функций 230, 375
функций - определение, см. Определение
- подменяемая 362, см. также шаблона функций
Функция виртуальная Шестнадцатеричная константа, см.
- подставляемая, см. inline-функция Константа шестнадцатеричная
- прототип, см. Описание функции Э
- рекурсивная, см. Рекурсивная Экземпляр класса, см. Объект
функция класса Эскейп-последовательность,
- с переменным числом параметров см. ESC-последовательность
176, см. также Определение Эффекты побочные, см. Побочные
(описание) функции с эффекты
переменным числом Я
параметров j Явное преобразование типа, см.
- самовызывающая, см. Рекурсивная Операция явного
функция преобразования типов
- семейство, см. Шаблон семейства