C/C++ для студента - Подробно рассматриваются языки программирования C и C++. Описаны типы данных, функции, классы, шаблоны, а также библиотеки стандартных функций. Язык программирования C++ рассматривается как объектно-ориентированное расширение языка C, что позволяет последовательно изучить процедурное программирование, объектно-ориентированное программирование и обобщенное программирование. Изложение материала отличается краткостью и снабжено большим количеством простых примеров и листингов, которые поясняют технику программирования на языках C и C++.
Название: C/C++ для студента Автор: Александр Побегайло Издательство: БХВ-Петербург Год: 2006 Страниц: 528 Формат: PDF Размер: 11,1 МБ ISBN: 5-94157-647-1 Качество: Отличное Серия или Выпуск: Для студента Язык: Русский
Содержание:
Введение Часть I. Язык программирования C Глава 1. Структура языка C 1.1. Элементы языка C 1.2. Символы 1.3. Ключевые слова 1.4. Идентификаторы 1.5. Константы 1.6. Инструкции 1.7. Комментарии Глава 2. Встроенные типы данных и переменные 2.1. Базовые типы данных 2.2. Модификаторы типов 2.3. Спецификаторы типов 2.4. Переменные 2.5. Фундаментальные типы данных 2.6. Квалификаторы типов Глава 3. Операторы и выражения 3.1. L-value и R-value 3.2. Арифметические операторы 3.3. Побитовые операторы 3.4. Операторы сравнения 3.5. Логические операторы 3.6. Выражения 3.7. Приведение типов в выражениях 3.8. Оператор преобразования типов 3.9. Оператор присваивания 3.10. Составные операторы присваивания 3.11. Операторы инкремента и декремента 3.12. Условный оператор 3.13. Оператор «запятая» 3.14. Побочные эффекты 3.15. Точки последовательности Глава 4. Управляющие инструкции 4.1. Инструкции выбора if и if… else 4.2. Инструкция выбора switch 4.3. Инструкции цикла while и do… while 4.4. Инструкция цикла for 4.5. Инструкция перехода break 4.6. Инструкция перехода continue 4.7. Метки инструкций и инструкция перехода goto Глава 5. Указатели и массивы 5.1. Указатели 5.2. Преобразование типов указателей 5.3. Операторы определения адреса и обращения по адресу 5.4. Указатели на константы и константные указатели 5.5. Одномерные массивы 5.6. Строки 5.7. Арифметические действия с указателями 5.8. Многомерные массивы Глава 6. Функции 6.1. Объявление функции 6.2. Определение функции 6.3. Стандартные функции 6.4. Вызов функции 6.5. Передача массивов в функции 6.6. Указатели на функции (функторы) Глава 7. Структура программы на языке C 7.1. Область видимости идентификатора 7.2. Время существования переменных и функций 7.3. Связывание идентификаторов 7.4. Спецификаторы классов памяти 7.5. Структура программы 7.6. Функция main Глава 8. Типы данных, определяемые программистом 8.1. Введение 8.2. Перечисления 8.3. Структуры 8.4. Объединения 8.5. Битовые поля 8.6. Передача структур в функции 8.7. Объявление typedef 8.8. Оператор sizeof 8.9. Сравнимые типы Глава 9. Директивы препроцессора 9.1. Препроцессор 9.2. Директивы #define и #undef 9.3. Директивы #if, #elsif, #else и #endif 9.4. Директивы #ifdef и #ifndef 9.5. Директива #include 9.6. Директивы #error 9.7. Директива #line 9.8. Директива #pragma 9.9. Пустая директива 9.10. Оператор # 9.11. Оператор ## 9.12. Предопределенные макрокоманды Часть II. Язык программирования C++ Глава 10. Дополнения к типам данных языка C 10.1. Тип данных bool 10.2. Тип данных wchar_t 10.3. Анонимные объединения 10.4. Ссылки 10.5. Новые операторы явного преобразования типов 10.6. Типизированные операторы распределения памяти Глава 11. Дополнение к функциям языка C 11.1. Передача аргументов по умолчанию 11.2. Встроенные функции 11.3. Передача аргументов и возврат значения через ссылки 11.4. Перегрузка функций 11.5. Искажение имен функций Глава 12. Пространства имен 12.1. Определение пространства имен 12.2. Анонимные пространства имен 12.3. Стандартное пространство имен 12.4. Оператор разрешения области видимости 12.5. Объявление using 12.6. Директива using 12.7. Псевдонимы 12.8. Искажение имен переменных Глава 13. Обработка исключений 13.1. Механизм обработки исключений 13.2. Обработка нескольких исключений 13.3. Перехват всех исключений 13.4. Вложенные исключения 13.5. Реализация исключений 13.6. Спецификация исключений Глава 14. Классы 14.1. Введение 14.2. Определение класса 14.3. Объекты, доступ к членам класса 14.4. Указатель this 14.5. Спецификаторы доступа к членам класса 14.6. Друзья класса 14.7. Встроенные функции-члены класса 14.8. Функции-члены класса с квалификаторами const и volatile 14.9. Данные-члены класса с квалификатором mutable 14.10. Статические члены класса 14.11. Указатели на нестатические члены класса 14.12. Вложенные классы 14.13. Локальные классы Глава 15. Конструкторы и деструкторы 15.1. Конструктор класса 15.2. Список инициализации 15.3. Конструктор по умолчанию 15.4. Конструктор копирования 15.5. Явный вызов конструкторов 15.6. Деструкторы 15.7. Исключения в деструкторах Глава 16. Перегрузка операторов 16.1. Общие правила 16.2. Унарные операторы 16.3. Оператор присваивания 16.4. Составные операторы присваивания 16.5. Оператор индексирования [] 16.6. Оператор вызова функции 16.7. Оператор доступа к членам класса 16.8. Операторы инкремента и декремента 16.9. Бинарные операторы 16.10. Перегрузка операторов >> и << для ввода и вывода 16.11. Операторы преобразования типов (конвертеры) 16.12. Операторы new и delete Глава 17. Наследование классов 17.1. Определение наследования 17.2. Доступ к членам, наследуемым от базового класса 17.3. Конструкторы, деструкторы и наследование 17.4. Наследование и присваивание 17.5. Виртуальные функции 17.6. Полиморфизм и позднее связывание 17.7. Передача аргументов по умолчанию в виртуальные функции 17.8. Виртуальные деструкторы 17.9. Абстрактные классы 17.10. Множественное наследование 17.11. Виртуальное наследование Глава 18. Шаблоны функций 18.1. Определение шаблона функции 18.2. Конкретизация шаблона функции 18.3. Вывод аргументов шаблона функции 18.4. Явная специализация шаблона функции 18.5. Модели компиляции шаблонов 18.6. Перегрузка шаблонов функций 18.7. Шаблоны функций как члены класса Глава 19. Шаблоны классов 19.1. Определение шаблона класса 19.2. Конкретизация шаблона класса 19.3. Использование ключевого слова typename 19.4. Явная специализация шаблона класса 19.5. Частичная специализация шаблона класса 19.6. Статические члены шаблона класса 19.7. Шаблоны как члены шаблона класса 19.8. Объявление друзей в шаблоне класса 19.9. Шаблоны класса и наследование 19.10. Шаблоны класса как параметры шаблонов функций 19.11. Шаблоны класса как параметры шаблона класса Часть III. Стандартная библиотека языка программирования C Глава 20. Стандартные определения <stddef.h> 20.1. Типы данных 20.2. Макрос NULL 20.3. Макрос offsetof Глава 21. Стандартные функции <stdlib.h> 21.1. Динамическое распределение памяти 21.2. Динамические массивы 21.3. Стандартные функции сортировки и поиска 21.4. Взаимодействие с системой 21.5. Преобразования строк в числа 21.6. Арифметические функции 21.7. Генерация случайных чисел 21.8. Обработка длинных символов Глава 22. Диагностика ошибок <assert.h> Глава 23. Функции с переменным количеством параметров <stdarg.h> Глава 24. Диапазоны целочисленных данных <limits.h> Глава 25. Диапазоны чисел с плавающей точкой <float.h> Глава 26. Обработка ошибок <errno.h> Глава 27. Математические функции <math.h> 27.1. Обработка ошибок 27.2. Тригонометрические функции 27.3. Экспоненциальная и логарифмическая функции 27.4. Гиперболические функции 27.5. Степень и квадратный корень 27.6. Экспонента и мантисса 27.7. Целая и дробная часть числа с плавающей точкой 27.8. Целые границы числа с плавающей точкой 27.9. Остаток от деления 27.10. Абсолютное значение числа Глава 28. Функции классификации символов <ctype.h> 28.1. Определение типа символа 28.2. Отображения прописных и строчных символов Глава 29. Функции для работы со строками <string.h> 29.1. Сравнение строк 29.2. Копирование строк 29.3. Соединение строк 29.4. Поиск символа в строке 29.5. Поиск подстроки в строке 29.6. Разбор строки на лексемы 29.7. Определение длины строки 29.8. Функции для работы с памятью 29.9. Сравнение строк, содержащих локальные символы 29.10. Получение строки, описывающей код ошибки Глава 30. Функции для работы с файлами <stdio.h> 30.1. Файлы и потоки 30.2. Открытие файла 30.3. Перенаправление потока 30.4. Закрытие файла 30.5. Работа с индикатором ошибки 30.6. Работа с индикатором конца файла 30.7. Работа с индикатором позиции файла 30.8. Блочный ввод/вывод 30.9. Ввод/вывод символов 30.10. Запись/чтение строк из файла 30.11. Форматированный вывод 30.12. Форматированный ввод 30.13. Форматирование и сканирование строк 30.14. Работа с буферами 30.15. Стандартные потоки 30.16. Удаление файла 30.17. Переименование файла 30.18. Работа с временными файлами Глава 31. Организация нелокальных переходов <setjmp.h> 31.1. Сохранение информации о состоянии стека 31.2. Нелокальный переход Глава 32. Обработка исключительных ситуаций <signal.h> 32.1. Сигналы 32.2. Установка функции обработки сигнала 32.3. Возбуждение сигнала Глава 33. Поддержка локализации <locale.h> 33.1. Локальность 33.2. Локальные категории 33.3. Установка локальности 33.4. Форматы числовых и денежных данных 33.5. Определение текущих форматов данных Глава 34. Работа с датами и временем <time.h> 34.1. Арифметические типы для представления времени 34.2. Структура для представления календарного времени 34.3. Определение времени работы программы 34.4. Определение текущего времени 34.5. Нахождение разности времен 34.6. Преобразование представления времени из числа в структуру 34.7. Преобразование представления времени из структуры в число 34.8. Преобразование представления времени из числа в строку 34.9. Преобразование представления времени из структуры в строку 34.10. Форматирование представления времени в строке Часть IV. Стандартная библиотека языка программирования C++ Глава 35. Структура стандартной библиотеки C++ Глава 36. Обработка исключений <exception> 36.1. Классы и функции 36.2. Класс exception 36.3. Класс bad_exception 36.4. Аварийное завершение программы 36.5. Обработка не специфицированного исключения 36.6. Определение наличия выброшенного исключения Глава 37. Классы стандартных исключений <stdexcept> Глава 38. Динамическая идентификация типов <typeinfo> 38.1. Динамическая идентификация типов 38.2. Класс type_info 38.3. Оператор typeid 38.4. Обработка исключения bad_typeid 38.5. Обработка исключения bad_cast Глава 39. Работа со строками в C++ <string> 39.1. Характеристики символов 39.2. Строки 39.2.1. Ассоциированные типы 39.2.2. Специальное значение символьного типа 39.2.3. Конструкторы 39.2.4. Шаблоны конструкторов 39.2.5. Операторы присваивания 39.2.6. Функции, возвращающие итераторы 39.2.7. Получение ссылки на элемент строки 39.2.8. Оператор индексирования 39.2.9. Добавление символа в конец строки 39.2.10. Преобразование в строку языка C 39.2.11. Получение адреса первого элемента строки 39.2.12. Функции, работающие с длиной строки 39.2.13. Соединение строк 39.2.14. Присваивание строк 39.2.15. Вставка строк и символов в строку 39.2.16. Удаление последовательности символов из строки 39.2.17. Очистка строки 39.2.18. Замена символов и подстрок в строке 39.2.19. Копирование подстроки в массив символов 39.2.20. Обмен строк 39.2.21. Поиск символов и подстрок в строке 39.2.22. Выделение подстроки 39.2.23. Сравнение строк 39.2.24. Получение распределителя памяти для символа 39.3. Шаблоны операторов 39.3.1. Соединение строк 39.3.2. Сравнение строк 39.3.3. Ввод/вывод строк 39.4. Шаблоны функций 39.4.1. Ввод строк 39.4.2. Обмен строк Глава 40. Потоки ввода/вывода в C++ 40.1. Структура стандартной библиотеки ввода/вывода 40.2. Базовые классы потоков <ios> 40.2.1. Класс ios_base 40.2.1.1. Флаги 40.2.1.2. Состояния 40.2.1.3. Режимы открытия потока 40.2.1.4. Направления поиска 40.2.1.5. События 40.2.1.6. Конструктор 40.2.1.7. Оператор присваивания 40.2.1.8. Класс failer 40.2.1.9. Класс Init 40.2.1.10. Управление разрешением дисплея 40.2.1.11. Управление шириной поля ввода/вывода 40.2.1.12. Управление памятью 40.2.1.13. Управление локальностью 40.2.1.14. Синхронизация с потоками языка программирования C 40.2.2. Шаблон класса basic_ios 40.2.2.1. Ассоциированные типы 40.2.2.2. Конструкторы 40.2.2.3. Деструктор 40.2.2.4. Инициализация объектов 40.2.2.5. Управление состоянием потока 40.2.2.6. Управление исключениями 40.2.2.7. Копирование состояния потока 40.2.2.8. Перегруженные операторы 40.2.2.9. Установка символа заполнителя 40.2.2.10. Управление буфером 40.2.2.11. Управление потоком вывода 40.2.2.12. Управление локальностью 40.2.3. Шаблон класса fops 40.2.4. Манипуляторы 40.3. Базовые потоки вывода <ostream> 40.3.1. Шаблон класса basic_ostream 40.3.1.1. Ассоциированные типы 40.3.1.2. Конструктор 40.3.1.3. Деструктор 40.3.1.4. Перегруженный оператор вывода << 40.3.1.5. Вывод символа 40.3.1.6. Вывод блока памяти 40.3.1.7. Освобождение буфера потока 40.3.1.8. Управление индикатором позиции 40.3.1.9. Класс sentry 40.3.2. Манипуляторы 40.3.3. Перегруженный шаблон оператора вывода << 40.4. Базовые потоки ввода и ввода/вывода <istream> 40.4.1. Шаблон класса basic_istream 40.4.1.1. Ассоциированные типы 40.4.1.2. Конструктор 40.4.1.3. Деструктор 40.4.1.4. Перегруженный оператор ввода >> 40.4.1.5. Ввод символов 40.4.1.6. Ввод строки 40.4.1.7. Просмотр символа в потоке 40.4.1.8. Возврат символа в буфер потока ввода 40.4.1.9. Ввод блока памяти 40.4.1.10. Игнорирование символов 40.4.1.11. Определение количества прочитанных символов 40.4.1.12. Управление индикатором позиции 40.4.1.13. Синхронизация потока с файлом 40.4.1.14. Класс sentry 40.4.2. Манипулятор 40.4.3. Перегруженный шаблон оператора ввода >> 40.4.4. Шаблон класса basic_iostream 40.5. Стандартные потоки ввода/вывода <iostream> 40.6. Базовые потоки ввода/вывода в файлы <fstream> 40.6.1. Шаблон класса basic_ofstream 40.6.2. Шаблон класса basic_ifstream 40.6.3. Шаблон класса basic_fstream 40.6.4. Работа с текстовыми файлами 40.6.4.1. Создание текстового файла 40.6.4.2. Чтение текстового файла 40.6.4.3. Модификация текстового файла 40.6.5. Работа с бинарными файлами 40.6.5.1. Создание бинарного файла 40.6.5.2. Чтение бинарного файла 40.6.5.3. Модификация бинарного файла 40.6.6. Копирование файла 40.7. Манипуляторы <iomanip> 40.7.1. Простые манипуляторы 40.7.2. Параметризованные манипуляторы Список литературы Предметный указатель