Введение
С и C++
Объекты
Инкапсуляция
Полиморфизм
Подход к типам в C++
Структура книги
Кому адресована эта книга
Принятые обозначения
От издательства


Часть I. Справочник по основным элементам С++

Словарь терминов и понятий
Абстрактные типы данных
Абстрактный класс
Абстракция данных
Агрегаты
Анонимные объединения
Аргумент
Ассоциативность
Базовый класс
Беззнаковые типы данных
Безопасная сборка программы с учетом типов
Битовое поле
Булевы значения
Виртуальная функция
Вложенные управляющие структуры и вложенные классы
Встраиваемая функция
Выражение
Главная функция
Данные-члены
Декорирование
Деструктор
Директива
Директива препроцессора
Дополнительный формат
Знакорасширение
Значения аргументов по умолчанию
Идентификатор
Именующее выражение
Инкапсуляция
Инструкция
Информация о типах во время выполнения программы
Исключение
Исполняемая инструкция
Класс
Класс памяти
Ключевое слово
Комментарии
Константа
Конструктор
Конструктор базового класса
Конструктор копирования
Конструктор по умолчанию
Косвенность
Литерал
Логические и битовые операторы
Макрос
Массив
Метка
Множественное наследование
Надкласс
Наследование
Область действия
Объект
Объектная ориентация
Объектно-ориентированное программирование
Объявление
Операнд
Оператор
Операторы присваивания
Определение
Параметр
Перегрузка операторов
Перегрузка функций
Переменная
Перечисление
Подкласс
Полиморфизм
Прагма
Приведение типа
Приоритет
Продвижение
Производный класс
Простейшие типы данных
Пространство имен
Прототип
Прототип функции
Пустая инструкция
Разыменование
Реализация
Рекурсия
Сигнатура
Символ новой строки
Сложные типы данных
Создание экземпляров класса
Составные инструкции
Ссылка
Ссылка вперед
Строка
Строковый литерал
Текстовая строка
Указатель
Указатель на функцию
Управляющая последовательность
Управляющая структура
Условная компиляция
Файлы заголовков
Функции
Функции обратного вызова
Функции преобразования
Функция-член
Чистая виртуальная функция
Член
Шаблон
Экземпляр
Экземпляр класса

Типы данных
bool
char
unsigned char
signed char
int
unsigned int
short
unsigned short
long
unsigned long
float
double
long double
wchar_t

Операторы
Ключевые слова — операторы
Оператор sizeof
Оператор new
Оператор delete
Оператор typeid
Операторы присваивания
Поразрядные операторы
Оператор запятая
Декремент
Инкремент
Условный оператор
Логические операторы
Оператор деления по модулю
Операторы-указатели
Операторы-указатели на член объекта
Операторы отношения
Оператор определения области видимости .

Операторы приведения типов
Оператор приведения типа старого стиля
Удаление модификатора const
Проверка типа во время выполнения программы
Приведение типа указателя
Преобразование типа между родственными объектами или указателями

Ключевые слова
asm
auto
break
case
catch
class
const
continue
default
do
else
enum
explicit
extern
for
friend
goto
if
inline
main
mutable
namespace
operator
private
protected
public
register
return
static
struct
switch
template
this
throw
try
typedef
union
using
virtual
void
volatile
while

Директивы, макросы и операторы препроцессора
Директивы
#define
#elif
#else
#endif
#error
#if
#ifndef
#ifndef
#include
#line
#pragma
#undef
Предопределенные макросы
_cplusplus_
_DATE_
_FILE_
_LINE_
_TIME_
Операторы препроцессора

Библиотечные функции
Обзор библиотечных функций
Поддержка списков параметров переменной длины
Функции консольного ввода/вывода
Обзор
Чтение символов с клавиатуры
Чтение чисел с клавиатуры
Вывод символов на экран
Сравнение консольного и файлового ввода/вывода
Функции проверки категории символов
Функции работы с блоками памяти
Функции работы с датой и временем
Обзор
Использование структуры tm
Сложное формирование даты/времени .
Функции работы со строками
Функции файлового ввода/вывода
Обзор
Чтение и запись текстовых файлов
Чтение и запись двоичных файлов
Сводный список функций

Объекты и классы библиотеки ввода/вывода
Краткий обзор библиотеки классов ввода/вывода
Организация ввода/вывода с помощью классов
Расширение оператора вывода
Расширение оператора ввода
Манипуляторы ввода/вывода
Флаги форматирования
Классы нового стиля
Обзор объектов и классов ввода/вывода C++
cerr
cin
clog
cout
fstream
ifstream
istream
istrstream
ofstream
ostream
ostrstream
strstream


Часть II. Краткий курс программирования на C++

Основные особенности программирования на C++
Первая программа на C++
Объявление переменных
Директива #include
Ввод данных
Операции, выражения и комментарии
Функции
Локальные, глобальные и другие переменные
Управляющие инструкции
Особые операции C++
Логические операции и операции над битами
Операции над полями бит

Указатели, массивы и строки
Указатели и передача данных
Передача данных но ссылке
Одномерные массивы
Многомерные массивы и их размещение в памяти компьютера
Инициализация массивов
Массивы и указатели
Строки
Указатели и динамическое распределение памяти
Использование стандартных функций malloc и free
Использование операторов new и delete

Ввод и вывод
Понятие потока
Операторы потоков для ввода/вывода
Управление форматом при работе с потоками
Ввод/вывод строк с помощью библиотеки stdio.h
Функции для работы с файлами в библиотеке stdio.h
Операторы потоков для работы с файлами
Операторы или функции?

Классы
Создание нового класса
Поведение класса
Объекты класса
Указатели на объекты
Достоинства классов
Конструкторы и деструкторы: рождение и смерть объектов
Определение встраиваемой функции
Структура как разновидность класса

Конструкторы
Перегрузка конструкторов
Конструктор по умолчанию
Конструктор копирования
Ссылки и конструктор копирования
Защита параметра от изменений
Примеры конструкторов
Вызов конструкторов и конверсия

Перегрузка операторов
Базовый синтаксис
Создание функций оператора сложения
Для чего нужны функции-друзья
Создание функции оператора присваивания
Указатель this и его использование при создании функций
Создание функции преобразования
Обобщение класса MyStr
Еще один пример перегрузки операторов
Обобщение определения операторов
Имя функции оператора
Бинарные операторы
Унарные операторы
Оператор присваивания
Присваивание переменных разных типов
Специальные операторы присваивания
Операторы инкремента и декремента
Оператор выделения элемента массива
Операторы new и delete
Оператор вызова функции
Ограничения на перегрузку операторов

Наследование
Дилемма программного обеспечения
Создание производного класса
Иерархия наследования
Создание класса без наследования
Наследование и оболочка объекта
Виды доступа: public, private и protected
Пример создания класса
Конструкторы базовых классов
Базовые классы и указатели

Виртуальные функции
Применение ключевого слова virtual
Программирование команд меню
Достоинства виртуальных функций
Чистые виртуальные функции и абстрактные классь
Определение виртуальной функции
Механизм вызова виртуальных функций


Часть III. Приложения

Отличия С и C++

Особенности ANSI C++
Новый стиль файлов заголовков
Операторы приведения типов ANSI
Шаблоны и обработка исключений
Новые ключевые слова
Область видимости в условной инструкции if
Перегрузка функций с перечисляемыми типами
Ссылки вперед для вложенных классов
Стандартные исключения

Таблица ASCII-кодов

Список характерных задач в C++

Алфавитный указатель