ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 15.04.2021

Просмотров: 6543

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

Оглавление 

7.3. Связывание идентификаторов..............................................................91

7.4. Спецификаторы классов памяти ..........................................................92

7.5. Структура программы ...........................................................................96

7.6. Функция 

main

 ........................................................................................97

Глава 8. Типы данных, определяемые программистом ....... 100

8.1. Введение ..............................................................................................100

8.2. Перечисления ......................................................................................101

8.3. Структуры ............................................................................................103

8.4. Объединения ........................................................................................107

8.5. Битовые поля .......................................................................................110

8.6. Передача структур в функции ............................................................111

8.7. Объявление 

typedef

 ..............................................................................114

8.8. Оператор 

sizeof

 ....................................................................................116

8.9. Сравнимые типы .................................................................................119

Глава 9. Директивы препроцессора .......................................... 122

9.1. Препроцессор ......................................................................................122

9.2. Директивы 

#define

 и 

#undef

 ................................................................123

9.3. Директивы 

#if

#elsif

#else

 и 

#endif

 ...................................................124

9.4. Директивы 

#ifdef

 и 

#ifndef

 ..................................................................126

9.5. Директива 

#include

 ..............................................................................127

9.6. Директивы 

#error

 ................................................................................129

9.7. Директива 

#line

 ...................................................................................129

9.8. Директива 

#pragma

 .............................................................................130

9.9. Пустая директива ................................................................................130

9.10. Оператор 

#

 .........................................................................................130

9.11. Оператор 

##

 .......................................................................................131

9.12. Предопределенные макрокоманды ..................................................132

ЧАСТЬ II. ЯЗЫК ПРОГРАММИРОВАНИЯ С++ ................. 133 

Глава 10. Дополнения к типам данных языка С .................... 135

10.1. Тип данных 

bool

 ................................................................................135

10.2. Тип данных 

wchar_t

 ..........................................................................135

10.3. Анонимные объединения .................................................................137

10.4. Ссылки ...............................................................................................138

10.5. Новые операторы явного преобразования типов ...........................140

10.6. Типизированные операторы распределения памяти ......................143


background image

Оглавление 

Глава 11. Дополнение к функциям языка C ........................... 146

11.1. Передача аргументов по умолчанию ...............................................146

11.2. Встроенные функции ........................................................................147

11.3. Передача аргументов и возврат значения через ссылки ................148

11.4. Перегрузка функций .........................................................................149

11.5. Искажение имен функций ................................................................153

Глава 12. Пространства имен..................................................... 155

12.1. Определение пространства имен .....................................................155

12.2. Анонимные пространства имен .......................................................156

12.3. Стандартное пространство имен......................................................157

12.4. Оператор разрешения области видимости ......................................157

12.5. Объявление 

using

 ..............................................................................160

12.6. Директива 

using

 .................................................................................161

12.7. Псевдонимы .......................................................................................162

12.8. Искажение имен переменных ..........................................................163

Глава 13. Обработка исключений ............................................. 165

13.1. Механизм обработки исключений ...................................................165

13.2. Обработка нескольких исключений ................................................169

13.3. Перехват всех исключений ...............................................................170

13.4. Вложенные исключения ...................................................................171

13.5. Реализация исключений ...................................................................174

13.6. Спецификация исключений ..............................................................175

Глава 14. Классы .......................................................................... 177

14.1. Введение ............................................................................................177

14.2. Определение класса ..........................................................................178

14.3. Объекты, доступ к членам класса ....................................................180

14.4. Указатель 

this

.....................................................................................181

14.5. Спецификаторы доступа к членам класса .......................................181

14.6. Друзья класса .....................................................................................183

14.7. Встроенные функции-члены класса ................................................187

14.8. Функции-члены класса с квалификаторами 

const

 и 

volatile

 ..........188

14.9. Данные-члены класса с квалификатором 

mutable

 ..........................190

14.10. Статические члены класса ..............................................................190

14.11. Указатели на нестатические члены класса....................................192

14.12. Вложенные классы ..........................................................................194

14.13. Локальные классы ...........................................................................196


background image

Оглавление 

Глава 15. Конструкторы и деструкторы .................................. 197

15.1. Конструктор класса ...........................................................................197

15.2. Список инициализации .....................................................................198

15.3. Конструктор по умолчанию .............................................................199

15.4. Конструктор копирования ................................................................200

15.5. Явный вызов конструкторов ............................................................202

15.6. Деструкторы ......................................................................................203

15.7. Исключения в деструкторах .............................................................205

Глава 16. Перегрузка операторов .............................................. 206

16.1. Общие правила ..................................................................................206

16.2. Унарные операторы ..........................................................................209

16.3. Оператор присваивания ....................................................................210

16.4. Составные операторы присваивания ...............................................212

16.5. Оператор индексирования 

[ ]

 ..........................................................213

16.6. Оператор вызова функции ................................................................214

16.7. Оператор доступа к членам класса ..................................................215

16.8. Операторы инкремента и декремента .............................................216

16.9. Бинарные операторы.........................................................................217

16.10. Перегрузка операторов 

>>

 и 

<<

 для ввода и вывода ..................218

16.11. Операторы преобразования типов (конвертеры) .........................219

16.12. Операторы 

new

 и 

delete

 ..................................................................219

Глава 17. Наследование классов ............................................... 222

17.1. Определение наследования ..............................................................222

17.2. Доступ к членам, наследуемым от базового класса .......................225

17.3. Конструкторы, деструкторы и наследование .................................226

17.4. Наследование и присваивание .........................................................229

17.5. Виртуальные функции ......................................................................230

17.6. Полиморфизм и позднее связывание ..............................................233

17.7. Передача аргументов по умолчанию в виртуальные функции......234

17.8. Виртуальные деструкторы ...............................................................235

17.9. Абстрактные классы .........................................................................236

17.10. Множественное наследование .......................................................238

17.11. Виртуальное наследование .............................................................239

Глава 18. Шаблоны функций ..................................................... 241

18.1. Определение шаблона функции .......................................................241

18.2. Конкретизация шаблона функции ...................................................243

18.3. Вывод аргументов шаблона функции .............................................246


background image

Оглавление 

18.4. Явная специализация шаблона функции .........................................249

18.5. Модели компиляции шаблонов ........................................................250

18.6. Перегрузка шаблонов функций ........................................................252

18.7. Шаблоны функций как члены класса ..............................................255

Глава 19. Шаблоны классов ....................................................... 257

19.1. Определение шаблона класса ...........................................................257

19.2. Конкретизация шаблона класса .......................................................259

19.3. Использование ключевого слова 

typename

 .....................................262

19.4. Явная специализация шаблона класса .............................................264

19.5. Частичная специализация шаблона класса .....................................265

19.6. Статические члены шаблона класса ................................................267

19.7. Шаблоны как члены шаблона класса ..............................................268

19.8. Объявление друзей в шаблоне класса .............................................269

19.9. Шаблоны класса и наследование .....................................................273

19.10. Шаблоны класса как параметры шаблонов функций ...................274

19.11. Шаблоны класса как параметры шаблона класса.........................275

ЧАСТЬ III. СТАНДАРТНАЯ БИБЛИОТЕКА  
ЯЗЫКА ПРОГРАММИРОВАНИЯ C ....................................... 277

Глава 20. Стандартные определения <stddef.h> .................... 279

20.1. Типы данных .....................................................................................279

20.2. Макрос 

NULL

 ....................................................................................280

20.3. Макрос 

offsetof

 ...................................................................................280

Глава 21. Стандартные функции <stdlib.h> ............................ 282

21.1. Динамическое распределение памяти .............................................282

21.2. Динамические массивы ....................................................................284

21.3. Стандартные функции сортировки и поиска ..................................287

21.4. Взаимодействие с системой .............................................................290

21.5. Преобразования строк в числа .........................................................294

21.6. Арифметические функции ................................................................298

21.7. Генерация случайных чисел .............................................................299

21.8. Обработка длинных символов .........................................................301

Глава 22. Диагностика ошибок <assert.h> ............................... 305

Глава 23. Функции с переменным количеством 
параметров <stdarg.h> ................................................................. 307


background image

Оглавление 

Глава 24. Диапазоны целочисленных данных <limits.h> ..... 311

Глава 25. Диапазоны чисел с плавающей точкой  
<float.h> ........................................................................................... 313

Глава 26. Обработка ошибок <errno.h> ................................... 316

Глава 27. Математические функции <math.h> ....................... 318

27.1. Обработка ошибок ............................................................................318

27.2. Тригонометрические функции .........................................................319

27.3. Экспоненциальная и логарифмическая функции ...........................320

27.4. Гиперболические функции ...............................................................321

27.5. Степень и квадратный корень ..........................................................321

27.6. Экспонента и мантисса .....................................................................322

27.7. Целая и дробная часть числа с плавающей точкой ........................323

27.8. Целые границы числа с плавающей точкой ....................................323

27.9. Остаток от деления ...........................................................................324

27.10. Абсолютное значение числа...........................................................324

Глава 28. Функции классификации символов <ctype.h> ..... 325

28.1. Определение типа символа...............................................................325

28.2. Отображения прописных и строчных символов ............................326

Глава 29. Функции для работы со строками <string.h> ........ 328

29.1. Сравнение строк ................................................................................328

29.2. Копирование строк............................................................................329

29.3. Соединение строк ..............................................................................330

29.4. Поиск символа в строке ....................................................................331

29.5. Поиск подстроки в строке ................................................................333

29.6. Разбор строки на лексемы ................................................................334

29.7. Определение длины строки ..............................................................335

29.8. Функции для работы с памятью .......................................................336

29.9. Сравнение строк, содержащих локальные символы ......................337

29.10. Получение строки, описывающей код ошибки ............................339

Глава 30. Функции для работы с файлами <stdio.h> ............ 341

30.1. Файлы и потоки .................................................................................341

30.2. Открытие файла ................................................................................343

30.3. Перенаправление потока ..................................................................344

30.4. Закрытие файла .................................................................................344