Язык Си++: Учебное пособие Part 001

Page 1

В.В.Подбельский ЯЗЫК СИ ++ 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. Функции с переменным количеством параметров 6.3. Рекурсивные функции 6.4. Подставляемые (инлайн-) функции 6.5. Функции и массивы 6.6. Указатели на функции 6.7. Ссылки 6.8. Перегрузка функций 6.9. Шаблоны функций Глава 7. СТРУКТУРЫ И ОБЪЕДИНЕНИЯ 7.1. Структура как тип и совокупность данных 7.2. Объединения разнотипных данных 7.3. Битовые поля структур и объединений Глава 8. ПРЕПРОЦЕССОРНЫЕ СРЕДСТВА 8.1. Стадии и команды препроцессорной обработки 8.2. Замены в тексте 8.3. Включение текстов из файлов 8.4. Условная компиляция 8.5. Макроподстановки средствами препроцессора 8.6. Встроенные (заранее определенные) макроимена Глава 9. КЛАСС КАК АБСТРАКТНЫЙ ТИП 9.1. Класс как расширение понятия структуры 9.2. Конструкторы, деструкторы и доступность компонентов класса 9.3. Компонентные данные и компонентные функции 9.4. Определение компонентных функций 9.5. Указатель this 9.6. Друзья классов 9.7. Расширение действия (перегрузка) стандартных операций Глава 10. НАСЛЕДОВАНИЕ И ДРУГИЕ ВОЗМОЖНОСТИ КЛАССОВ 10.1. Наследование классов 10.2. Множественное наследование и виртуальные базовые классы 10.3. Виртуальные функции и абстрактные классы 10.4. Локальные классы 10.5. Классы и шаблоны Глава 11. ВВОД-ВЫВОД В ЯЗЫКЕ СИ++ 1.1. Общие сведения о библиотеке потокового ввода-вывода 1.2. Стандартные потоки для базовых типов 1.3. Форматирование данных при обменах с потоками 1.4. Ввод-вывод для типов, определенных пользователем 1 5, ФУНКЦИИ для обмена с потоками 1 6. Строковые потоки (обмены в основной памяти) 1 1.7. Работа с файлами Глава 12. ОБРАБОТКА ОСОБЫХ (ИСКЛЮЧИТЕЛЬНЫХ) СИТУАЦИЙ 12.1. Общие принципы механизма обработки исключений

176 186 190 193 204 215 227 230 237 237 250 258 263 263 265 268 271 274 279 281 281 287 295 303 309 315 322 336 336 349 359 373 375 379 379 385 398 409 415 420 431 445 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 ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ Адреса байтов памяти 158 A-Z Адресация памяти 159 ASCII-код, см. Кодировка ASCII Алфавит языка Си++ 18 BC++4 Аргумент функции, см. Формальные BGI510 параметры; Фактические EasyWin 469 параметры ESC-последовательность 26, 263 Арифметический тип, см. Скалярный far-указатель 161 тип huge-указтепь 164 Арифметическое выражение 86 IDE 469,486 Арифметическое преобразование, см. inline-функция 190, 275, 303 Операция преобразования l-значение 37, 59, 302, 303 Б MS-DOS 10 Базовый класс 52,336,339 Microsoft Windows 469 - - абстрактный 366 near-указатель 160 - - виртуальный, см. Виртуальный RTTI, см. Динамическая базовый класс идентификация типов - - непосредственный, см. TC++ 4 Непосредственный базовый класс A - - непрямой, см. Непрямой базовый Абстрактный класс 365 класс Абстрактный тип 281 - - общий 358 Абстракция данных 281 - - прямой, см. Непосредственный Агрегатный тип 59 базовый класс Аддитивная операция 34 Базовый тип 57, см. также Тип Адрес, см. Операция взятия адреса


данных Бинарные операции 33 Битовое поле 258 Ближний указатель, см. nearуказатель Блок 48,62 - - и составной оператор 92 - - контролируемый, см. Контролируемый блок - - обработчика исключений 446 Буфер потока 380, см. также Поток В Ввод, см. Операция ввода, см. также Поток ввода, Потоковый вводвывод Вещественная константа, см. Константа вещественная Видимость, см. Область видимости Виртуальная функция 359 - - дружественная 365 - - - и производный класс 363 - чистая 365 Виртуальный базовый класс 356 Вложение блоков 92 комментариев 18 - - контролируемых блоков 459 - - переключателей 103 - - составных операторов 92 - - условных операторов 93 - - циклов 101 Внешнее связывание, см. Связывание внешнее Внутреннее связывание, см. Связывание внутреннее Возвращаемое значение 170 Восьмеричная константа, см. Константа восьмеричная Встраиваемая функция, см. inlineфункция Вывод, см. Операция вывода, см. также Поток вывода, Потоковый ввод-вывод Вызов деструктора явный 347

- - функции 41, 84, 173 Выражение 80, 82 - - арифметическое 86 леводопустимое, см. Леводопустимое выражение - - первичное 81 - - постфиксное 83 - - праводопустимое 60 - - префиксное 32 Вычитание, см. Операция вычитания Г Генерация исключений 448, 453, 457 Глобальная область памяти, см. Область памяти глобальная - переменная - - _new_handler 465 - - __throwExceptionName 478 - - __tfcowFifctfanie478 - - __thrpwLineN!W4ber 478 Д Дальний указатель, см. far-указатель Данные, абстракция, см. Абстракция данных - внешние, см. Внешние данные - класса, см. Компонентные данные класса - тип, см. Тип данных Декремент, см. Операция декремент Деление, см. Операция деления Деструктор 294, 346 - вызов 346 - явный 347 Десятичная константа, см. Константа десятичная Динамическая идентификация типов 481,486 Директива препроцессора 17, 53, 263 #264,278 - #ddme 264, 265 - #elif 264, 273 - #else 264, 272 - #endif 264,272 - #error 264, 278


- #if 264, 271 - #ifdef 264, 272 - #ifndef 264,272 - #include 9,174,264,268 - #line264,278 - #pragma 264,278 - #undef 264, 268 Доступ к базовому классу из производного класса 338, 341 - - к производному классу из базового класса 341 - - к элементам массива 151 Дружественная функция 315 - - виртуальная, см. Виртуальная дружественная функция Дружественный класс 319 З Заголовок переключателя, см. Оператор switch - функции 7 - цикла, см. Цикл Заголовочный файл 175, 269 - alloc.h 504 - - compkx.h 283,528 - - conio.h 309,316, 398, 504, 511 - - constrei.h 384 - - - cstring.h466,531 - - ctype.h 499 - - dos.h 161,256,506 - - except.h 466, 477 - - fcntLh 432 - - float.h495 - - fstream.h 384, 433 - - graphfcs.h306,345,509 - - io.h432 - - iomanip.h 407, 525 - - iostream.h 7,175, 269,384, 379 - - limits.h 494 - - matkh 497 - - mem.h 506 - - new.h466 - - process.h 190 - - signal.h 508

- - stdarg.h52, 181 - - stdlib.h 212,432, 501,507 - - stdio.h 379, 500 - - string.hl39,214,422,501 - - strstrea.hl 1,384,420 - - sys\stat.h 432 - - typeinfo.h481 Зарезервированное слово, см. Служебное слово Знаки операций 18, 31 Значение, возвращаемое функцией 170 - леводопустимое, см. l-значение - параметра по умолчанию 176 - праводопустимое 32 - указателя 108 - - - нулевое, см. Нулевой указатель И Идентификатор 18,19,44,54,83 - класса 281 - массива 237 - область действия, см. Область действия идентификатора - - процессорный 265 Иерархия классов 289,336 - - библиотеки ввода-вывода382 - - виртуальных 357 - - производных 349 - - объектов 336 Имя 82 - массива 133 - основное 248 - переменной 59 - повторное использование 65, 66, 79 - указателя 44 - уточненное 239, 241, 252, 283 - функции 169 Индекс массива 41,130 Индексация 83, см. также Операция [] Инициализатор 75,1Q9, 215,292 Инициализация класса 288, см. также Конструктор


- константы 19 - массива 49,131 - - динамического 155 - - классов 286 - - многомерного 145 - объединения 257 - объекта 70 - переменной 55,75 - ссылки 215,224 - - - на объект класса 283 - статического компонента класса 286 - структуры 49, 239 - указателя 109, 241 - - - на функцию 206 Инкапсуляция 5, 289 Инкремент, см. Операция инкремент Исключение 445,446,453 - Bad_tipeid 482 - xalloc 465 - обработка, см. Обработка исключений - обработчик, см. Обработчикисключений - порождение, см. Генерация исключений Исключительная ситуация, см. Исключение К Класс 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 - ofstream 383,434,526 - oslream383,416,419, 522 - ostrstream 383,424 - string 531

- strstream 383,427 - typeinfo481 - xaffloc 466 - xmsg466 - абстрактный 365 - базовый, см. Базовый класс - данные, см. Компонентныеданные класса - дружественный, см. Дружественный класс - инициализация, см. Инициализация класса - компонент, см. Компонентныеданные класса - локальный, см. Локальныйкласс - метод, см. Компонентнаяфункция класса - наследник, см. Класс производный - определение, см. Определениекласса - памяти 61,75 - - auto 61 - - register 61,115 - - - static 61,73,297 - - extern 61,69,73,169 - полиморфный, см. Полиморфный класс - порождающий, см. Базовыйкласс - порожденный, см. Производный класс - потомок, см. Производныйкласс - производный, см. Производныйкласс - семейство, см. Шаблон семейства классов - - функции, см. Функция класса Ключевое слово, см. Служебное слово Кодировка ANSI (Кодовая таблица MS Windows) 492 - - ASCII 118, 254,488 - - OEM (Кодовая таблица MS-DOS) 490


Команда препроцессора, см. Директива препроцессора Комментарий /* */ 8,174, 266 - - // 7,8,174 Компонент класса, см. Компонентные данные класса Компонентная функция класса 282 - дружественная, см. Дружественная функция - - статическая 298 Компонентные данные класса 282, 295 - - - защищенные 315, 339, см.также Модификатор protected - - - нестатические 299 - - - общедоступные 315, 339, см. также Модификатор public - - - собственные 299, 339, см. также Модификатор private - - - статические 285, 373 Компоновка, см. Связывание Консольный поток, см. Поток консольный Константа 18, 20 - восьмеричная 20, 21 - вещественная 20, 22 - десятичная 20 - литерная, см. Константа символьная - перечислимая 20, 24 - с плавающей точкой, см. Константа вещественная - символьная 20, 26, 30 - строковая 20, 28 - - на нескольких строках 29 - - целая 20, 21 - - шестнадцатеричная 20, 21 Конструктор класса 288 - - X (const X&) 291 - - абстрактного 366 - - виртуального 356 - - стандартный (по умолчанию)291 Контролируемый блок 445 Л

Леводопустимое выражение 59, см. также l-значение Лексема», 17,18, 277 Лексический элемент, см. Лексема Литерал, см. Константа Литерная константа, см. Константа символьная Логическая операция, см. Операция логическое И (ИЛИ, НЕ) Локализация 92, см. также Область видимости Локальный класс 373 М Макроопределение 48, см. также Директива препроцессора #define - FP_OFF() 164 - FP_SEG() 164 - MK_FP() 161 - va_arg()52,182 - va_end()52, 183 - va_start() 52, 182 - встроенное 279 Макрос, см. Макроопределение Манипулятор 405 - без параметров 406 - - dec 406 - - endl 407 - - ends 407, 428 - - flush 407 - - hex 118, 394,406 - - oct 407 - - ws 407 - с параметрами 407 - resetiosflags() 408 - - setbase() 407 - - setfdl() 408 - setiosflags() 408 - setprecision() 408 - setw() 408 Массив 110, 237 - динамический 154, 200 - доступ к элементам, см. Доступ к


элементам массива - и указатель 130,195 - имя, см. Имя массива - индекс, см. Индекс массива - инициализация, см. Инициализация массива - многомерный 144,196 - объединений 257 - - объектов классов 283,286 - описание, см. Описание массива - определение, см. Определение массива - параметр 193 - символьный 30 - указателей 149 - - на строки 212 - - на функции 207 Метка 52, 91 - - case в переключателе 90,94 - - default в переключателе 90,94 Метод класса, см. Компонентная функция класса Минус, см. Операция минус унарный Многомерный массив, см. Массив многомерный Модификатор, см. также Служебное слово - _cs 166 - _ds 166 - _es 166 - _seg 166,167 - _ss 166 - cdecl 80, 181 - const 79,113, 219 - far 80,160 - friend 315 - huge 80,160 - interrupt 80 - near 80,160 - pascal 80,181 - private 289, 297, 465, см. такжеКомпонент класса собственный

- protected 289, 465, см. такжеКомпонент класса защищенный - public 289, 297, см. также Компонент класса общедоступный - volatile 80 Н Направленный ациклический граф (НАГ) 338,349 Наследование 336 - доступа к компоненту класса338 - множественное 338,350 - неоднозначное 359 Начальные значения параметров, см. Значение параметра по умолчанию Неоднозначность при наследовании 359 - при обращении к компонентным данным класса 311 - при сопоставлении операторов if и else 93 Непосредственный базовый класс 349 Непрямой базовый класс 352 Нормализованный указатель, см. huge-указатель Нулевой указатель (NULL) 44, 98, 110,120 О Область видимости 92 - - объекта 65,68 - - действия 61 - - идентификатора 62,65 - - оператора 93,107 - - ссылки 219 - - памяти глобальная 286 Обобщенный пробельный символ, см. Пробел обобщенный Обработка исключений 460 Обработчик исключений 446 Обращение к функции, см. Вызов функции


Объединение 250, 387 - безымянное 257 Объединяющий тип 58,252 Объект 59 - класса 296 Объектно-ориентированное программирование 5 - проектирование 5,336 Оператор 90, 108, см. также Служебное слово - break 95,104 - continue 107 - do 98 - else 92 - for 50, 99 - goto 102,448,462 - if 14 - return 14, 103,170,410 - switch 90,92,94 - throw 445,458,487 - while 42,97,255 - безусловного перехода, см. Оператор goto - возврата из функции, см. Оператор return - выбора, см. Метка case в переключателе - выражение 90 - переключатель, см. Оператор switch - присваивания, см. Операция присваивания - пустой 91 - составной, см. Составной оператор - условный, см. Оператор if - - цикла 96, см. также Цикл Операционная система MS-DOS, см. MS-DOS - - MS Windows, см. Microsoft Windows Операция - # 276 - ## 277 - () 41,46,47,173

- [] 41,46,47,130,218 - 048 - ... 52 - : 51 - ; 51, 90 - delete 45,71,143,201 - new 43,71,138,154,249,465- и массив - sizeof 22,33,130,138,154, 218 - typeid481 - аддитивная 34 - бинарная 33 - больше или равно, чем (>«•) 35,46 - больше, чем (>) 35,46 - ввода (») 46, 385,390 - взятия адреса (в) 32, 46, 109,115,121,130,218 - взятия остатка (%) 34,46 - выбора компонентов структурированного объекта (->, .)39,241,284,296,327 - вывода («) 46, 385, 390 - вычитания (-) 25, 32, 34, 46, 121 - декремент (--) 33,46, 121, 124 - деления (/) 34,46 - запятая (,) 40,46,50 - индексации, см. Операция [ ] - инкремент (++) 32,46,121,124 - логическое И (66) 36, 46 - - ИЛИ (II) 36,46 - - НЕ(!)32,46 - меньше или равно, чем (<=) 35,46 - меньше, чем (<) 35, 46 - минус унарный (-) 32 - мультипликативная 34 - над указателями 120 - неравно(!=)35,46 - отношения 35,46 - плюс унарный (+) 32 - поразрядное И (6) 34,46 - - ИЛИ (|)34,46 - - - ИСКЛЮЧАЮЩЕЕ (^) 35, 46 - - НЕ (~)32.46 - - преобразования 86


- - - необратимость 88 - обратимость 88 - операндов в арифметическихвыражениях 86,87 - ссыпок 86 - стандартное, см. Операция преобразования типов - типов 46,85 - явного, см. Операция явного преобразования типов - - указателей 86 - на компоненты классов 86 - префиксная 32 - приведения, см. Операция преобразования - приоритет, см. Приоритет операций - присваивания (=) 37,38,46,53 - разыменования (*) 32, 46, 52,241 - - указателей на компоненты классов (.*, ->*)302 - с компонентами классов 39,46 - сравнения на равенство (==) 35,46 - сдвига влево (<<) 34,46 - сдвига вправо (>>) 34,46 - сложения (+) 32,34,46 - указания области видимости (::)39,46 - умножения (*) 34,46,52 - - условная (?:) 42,46 - уточнения области действия (::) 283 - функция 322,409 - явного преобразования типов 42,48,85,111,116 Описание 50 - внешних ссылок 220. - и определение, см. Определениеи описание - компонентов класса 220 - массива 131 - - явное 132 - переменной 55 - функции 51,63,90,172 - с переменным числом параметров

177 - чистой виртуальной 366 - шаблона функций 235 - элементов класса 295 Определение 54 - и описание 62,74,92 - класса 64,281 - базового 352 - виртуального 356 - производного 339 - массива 131 - объединения - переменной 59 - перечисления 24 - ссылки 215, 220 - - на функцию 223 - указателя 44, 108 - функции 51, 170 - виртуальной 362 - - повторное 363 - компонентной 303 - - с переменным числом параметров 52, 178 - - шаблона - классов 376 - функций 230 Основное имя, см. Имя основное Особая ситуация, см. Исключение Остаток, см. Операция взятия остатка Отношения, см. Операция отношения П Память, выделение автоматическое, см. Класс памяти auto (register) - динамическое, см. Операция new - явное, см. Операция new - локальная, см. Класс памяти tuto - ПЭВМ 157 - - регистровая, см. Класс памяти register Параграф памяти ПЭВМ 158 Параметр фактический, см. Фактические параметры


- формальный, см. Формальныепараметры - шаблона, см. Список параметров шаблона Параметр-ссылка 221 Перегрузка 32, 42, 81, 322 - - дружественной функции 333 -операции ввода-вывода 388, 429 - - -м- 329, 332 - 332 - - [] 376 - - << 388, 409 - - >> 388, 413 - new 474 - индексации 376 - функции 227, 232 - шаблона функций 236 Переключатель, см. Оператор switch Переменная 59 - автоматическая 71, см. такжеКласс памяти auto - глобальная, см. Глобальная переменная - индексированная 57, 147, см. также Индексация - локальная 40 - регистровая, см. Регистровые переменные - - статическая 61 Переполнение 55 Перечислимая константа, см. Константа перечислимая Перечислимый тип, см. Скалярный тип Плюс, см. Операция плюс унарный Побочные эффекты 81, 84, 406 Подмена функции, см. Виртуальная функция Поле битовое, см. Битовое поле Полиморфизм 5, 482 Полиморфный класс 360, 482 Поразрядные операции, см. Операция поразрядное И (ИЛИ, НЕ) Порождение исключений 448, 453

Порядок вызова деструкторов класса 288, 291 - - конструкторов класса 295 Поток 380 - безымянный 426 - ввода 383, 387, см. также Стандартный поток ввода - включение данных 386 - входной, см. Поток ввода - вывода 383, 387, см. также Стандартный поток вывода - выходной, см. Поток вывода - запись данных, см. Поток, включение данных - извлечение данных 386 - консольный 382 - стандартный, см. Стандартный поток - строковый 382, 420 - входной 420 - выходной 424 - двунаправленный 427 - файловый 382 - чтение данных, см. Поток, извлечение данных Потоковый ввод-вывод 379, 519 Преобразование, см. Операция преобразования Препроцессор 263 - - команды, см. Директивы препроцессора Префиксная операция 32 Приведение, см. Операция преобразования Приоритет операций 46 Присваивание, см. Операция присваивания Пробел обобщенный 392 Программирование объектноориентированное 5 Продолжительность существования объектов 69 - статическая 61, 70


- локальная 71 - динамическая 71 - участка памяти 45 Проектирование объектноориентированное 5 Производные типы 57, 116, 247, 281 Производный класс 52, 336 Пространство имен 64 Прототип, см. Описание Р Разделитель 18, 47 - - пробельный 17 Разыменование указателей см. Операция разыменования Ранги операций, см. Приоритет операций Расширение действия операции, см. Перегрузка операции Регистровая переменная - - _CS 166 - - _DS166 - - _ES 166 - - _SS 166 Регистры сегментов 159 Режим EasyWin 469 Рекурсивная функция 187 Рекурсия 81, 187 "Родовое" программирование 119 С Связывание внешнее 61, 72 - - внутреннее 61, 72 - - динамическое 362 - - отложенное, см. Динамическое связывание - - позднее, см. Динамическое связывание - - раннее, см. Статическое связывание - - статическое 362 Сдвиг вправо, см. Операция сдвига вправо влево, см. Операция сдвига влево

Сегментная организация памяти 159 Сегментная часть адреса 158 Сегментные указатели 166, 167 Сигнатура 409 - функции 169 - Символ null, ' \0' 396 - '\n' 263 - подчеркивания, '_' 19 Ситуация исключительная, см. Исключение - особая, см. Исключение Скалярный тип 59 Скэн-код 254 Слово зарезервированное, см. Служебное слово ключевое, см. Служебное слово памяти 158 Сложение, см. Операция сложения Служебное (ключевое) слово - _CS, см. Регистровая переменная _CS - _cs, см. Модификатор _cs - _DS, см. Регистровая переменная _DS - _ds, см. Модификатор _ds - - - _ES, см. Регистровая переменная _ES - _es, см. Модификатор _es - - - _seg, см. Модификатор _seg - _SS, см. Регистровая переменная _SS - _ss, см. Модификатор _ss - auto, см. Класс памяти auto - - - break, см. Оператор break - - - case, см. Метка case в переключателе - - - catch 445, 454, 487 - - cdecl, см. Модификатор cdecl - - char, см. Тип char - - - class 52, 230 - - const, см. Модификатор const - - continue, см. Оператор continue - - default, см. Метка default в


переключателе - - delete, см. Операция delete - - do, см. Оператор do - - double, см. Тип double - - else, см. Оператор else - enura 24, см. также Перечислимые константы - extern, см. Класс памяти extern - far, см. Модификатор far - float, см. Тип float - for, см. Оператор for - friend, см. Модификатор friend - goto, см. Оператор goto - huge, см. Модификатор huge - if, см. Оператор if - - - inline, см. Спецификатор inline - int, см. Тип hit - interrupt, см. Модификатор interrupt - long, см. Тип long - near, см. Модификатор near - new, см. Операция new - operator 322 - pascal, см. Модификатор pascal - private, см. Модификатор private - protected, см. Модификатор protected - public, см. Модификатор public - - register, см. Класс памяти register - return, см. Оператор return - short, см. Тип short —signed 55, 87 - - - sizeof, см. Операция sizeof - - static, см. Класс памяти static - struct 52, 282, 289, см. Также Структурный тип - - switch, см. Оператор switch - template 230, см. также Шаблон - this, см, Указатель this - throw, см. Оператор throw - - - try 445, 454 - - typedef, см. Спецификатор typedef - - - typeid, см. Операция typeid

- union 52, 289, см. также Объединяющий тип - - unsigned, см. Тип unsigned - - virtual 356 - - void, см. Тип void - volatile, см. Модификатор volatile - - while, см, Оператор while - - список 19 Смещение 158 Составной оператор 91 - - и блок 92 Спецификатор - inline 190, см. также inlineфункция - typedef 57, 86, 208, 247 - чистый 365 Список инициализации, см. Инициализация - - параметров шаблона 230, 233, 378 Сравнение, см. Операция сравнения на равенство Ссылка 53, 59, 215 - на константу 219 - на параметр 221 - на структуру 242 - на функцию 223 - определение, см. Определение ссылки Стандартный поток 385 - - - ввода cin 47, 175, 385 - - вывода cout 7, 8, 47, 117, 140, 385 - ошибок cerr 385, 448 - - предопределенный обмен данными 387 - - протокола clog 385 Статус доступа 338 Стек 122, 181, 186 Строка 97 Строковая константа, см. Константа строковая Строковый поток, см. Поток строковый Структура 237, см. также


Структурный тип Структурный тип 58, 238, 240, 252 Сфера действия, см. Область действия Т Тег, см. Структурный тип Тело - - функции 8, 170 - - цикла 96, см. также Цикл Технология "copy-on-write" 532 Тип - char 25, 54, см. также Символьные константы - double 23 - float 12, 23, 43 - int 12, 21 - long 15, 21 - long double, 23 - short 33, 55, 87 - unsigned 21 - void 8, 104, 170, 218 -void* 118 - абстрактней, см. Абстрактный тип - агрегатный, см. Агрегатный тип - базовый, см. Базовый тип - беззнаковый, см. Тип unsigned - возвращаемого значения - void, см. Тип void - ссылка 224, 231 - - данных 21, 56 - - абстрактный, см. Абстрактный тип - знаковый, см. Тип signed - класс, см. Класс - объединяющий, см. Объединяющий тип - перечислимый, см. Перечислимый тип - преобразование, см. Преобразование типа - производный, см. Производные типы - результата, см. Тип возвращаемого значения

- скалярный, см. Скалярный тип - структурный, см. Структурный тип - указателя 44 - - void*, см. Тип void* - функции 59, 169 - чисел с плавающей точкой, см.Тип float, Тип double Точность простая, см. Тип float - - двойная, см. Тип double У Указание области видимости, см. Операция указания области видимости Указатель 147 - this 81, 309 - ближний, см. near-указатель - дальний, сл«.far-указатель - значение, см. Значение указателя - и массив, см. Массив и указатель - инициализация, см. Инициализация массива - константа 108, 133, 220, 309 - константный, см. Указательконстанта - массив, см. Массив указателей - на компонент класса 59, 300 - на константу 115-- на массив 195 - на объект !08- класса 299 - на постоянную, см. Указатель на константу - на статический компонент класса 299 - на строку 79 - на структуру 249 - на указатель 128 - на функцию 108, 204, 210 - нормализованный, см. hugeуказатель - нулевой, см. Нулевой указатель - описание, см. Описание указателя - определение, см. Определение указателя - переменная 143


- пустой, см. Нулевой указатель - родовой, см. Тип void* - сегментный, см. Сегментные указатели Умножение, см. Операция умножения Условная операция, см. Операция условная Условный оператор, см. Оператор if Уточнения области действия, см. Операция уточнения области действия Уточненное имя, см. Имя уточненное Ф Файл заголовочный, см. Заголовочный файл - текстовый 17 Файловый поток, см. Поток файловый Фактические параметры 84 Флаг 394, 399 - ios::ate424 - ios::app 424 - ios::beg429 - ios::cur 429 - ios::dec400 - ios::end429 - 5os::fixed401 - ios::hex400 - ios::in427 - ios::internal 400 - ios::left400 - ios::oct 400 - ios::out 424 - ios::right 400 - ios::scientific 400 - ios::showbase 400 - ios::showpoint 400 - ios::showpos 400 - ios::skipws 400 - ios::stdio 400 - ios::unitbuf 400 - ios::uppercase 400

- - форматирования 402 Формальные параметры 169 Форматирование данных при вводевыводе 398 - - флаг, см. Флаг форматирования Функция 41 - abort() 460, 468, 476 - bioskey() 254 - circk() 344 - close() 439 - closegraph() 309 - concat() 184 - creat() 432 - exit() 190, 468 - floodfill() 344 - FP_OFF(), см. Макроопределение FP_OFF() - FP_SEG(), см. Макроопределение FP_SEG() - fopen() 434 - free() 71 - getch() 309, 316, 398 - getcoIor() 344 - getimage() 344 - gotoxy()316 - imagesize() 344 - initgraph() 308 - int86() 256 - main() 7, 169 - malloc()71, 138 - MK_FP(), см. Макроопределение MK_FP() - open() 434, 527 - printf() 52, 184, 398 - putch() 316 - putimage() 344 - qsort()211 - scanf() 52, 184, 398 - set_new_handler() 466 - set_terminate() 476 - set_unexpected() 477 - strcmp()214 - strcpy() 142, 422


- strkn() 139 - terminate() 457, 476 - unexpected() 460, 477 - va_arg(), см. Макроопределение va_arg() - va_end(), см. Макроопределение va_end() - va_start(), см. Макроопределение va_start() - виртуальная, см. Виртуальная функция - и ссылки, см. Параметр-ссылка - имя, см. Имя функции - класса, см. Компонентная функция класса - компонент класса, см. Компонентная функция класса - обращение к, см. Вызов функции - операция, см. Операция-функция - описание, см. Описание функции, Прототип - определение, см. Определение функции - перегруженная, см. Перегрузка функций - подменяемая 362, см. также Функция виртуальная - подставляемая, см. inline-функция - прототип, см. Описание функции - рекурсивная, см. Рекурсивная функция - с переменным числом параметров 176, см. также Определение (описание) функции с переменным числом параметров j - самовызывающая, см. Рекурсивная функция - семейство, см. Шаблон семейства

функций - сигнатура, см. Сигнатура функции - ссылка, см. Ссылка на функцию - указатель, см. Указатель на функцию Ц Целая константа, см. Константа целая Целочисленный тип, см. Тип int (long, short, unsigned) Цикл 96 - бесконечный 98, 99, 100 - итерационный, см. Оператор for - с постусловием, см. Оператор do - с предусловием, см. Оператор while Ч Чисто виртуальная функция 365 Ш Шаблон классов 376 - - семейства функций, см. Шаблон функций - классов, см. Шаблон классов список параметров, см. Список параметров шаблона функций 230, 375 - определение, см. Определение шаблона функций Шестнадцатеричная константа, см. Константа шестнадцатеричная Э Экземпляр класса, см. Объект класса Эскейп-последовательность, см. ESC-последовательность Эффекты побочные, см. Побочные эффекты Я Явное преобразование типа, см. Операция явного преобразования типов






























































































































































































































































































Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.