Глава 1. Введение в C++
Язык программирования C++
Первая программа на Windows. Компилятор g++
Первая программа на Windows. Компилятор Clang
Первая программа на Windows. Компилятор Microsoft Visual C++
Первая программа на Linux. Компилятор g++
Первая программа на MacOS. Компилятор Clang
Настройка параметров компиляции
Локализация и кириллица в консоли
Глава 2. Основы языка программирования C++
Структура программы
Переменные
Типы данных
Константы
Ввод и вывод в консоли
using. Подключение пространств имен и определение псевдонимов
Арифметические операции
Статическая типизация и преобразования типов
Поразрядные операции
Операции присваивания
Условные выражения
Конструкция if-else и тернарный оператор
Конструкция switch
Циклы
Ссылки
Массивы
Многомерные массивы
Массивы символов
Введение в строки
Глава 3. Указатели
Что такое указатели
Операции с указателями
Арифметика указателей
Константы и указатели
Указатели и массивы
Глава 4. Функции
Определение и объявление функций
Область видимости объектов
Параметры функции
Передача аргументов по значению и по ссылке
Константные параметры
Оператор return и возвращение результата
Указатели в параметрах функции
Массивы в параметрах функции
Параметры функции main
Возвращение указателей и ссылок
Перегрузка функций
Рекурсивные функции
Рекурсия на примере быстрой сортировки
Указатели на функции
Указатели на функции как параметры
Тип функции
Указатель на функцию как возвращаемое значение
Разделение программы на файлы
Внешние объекты
Глава 5. Динамическая память и smart-указатели
Динамические объекты
Динамические массивы
unique_ptr<T>
shared_ptr<T>
Глава 6. Объектно-ориентированное программирование
Определение классов
Конструкторы и инициализация объектов
Управление доступом. Инкапсуляция
Объявление и определение функций класса
Конструктор копирования
Константные объекты и функции
Ключевое слово this
Дружественные функции и классы
Статические члены класса
Деструктор
Структуры
Перечисления
Наследование
Управление доступом в базовых и производных классах
Скрытие функционала базового класса
Множественное наследование
Виртуальные функции и их переопределение
Преобразование типов
Динамическое преобразование
Особенности динамического связывания
Чистые виртуальные функции и абстрактные классы<
Перегрузка операторов
Операторы преобразования типов
Оператор индексирования
Переопределение оператора присваивания
Пространства имен
Вложенные классы
Глава 7. Исключения
Обработка исключений
Вложенные try-catch
Создание своих типов исключений
Тип exception
Типы исключений
Глава 8. Шаблоны
Шаблоны функций
Шаблон класса
Специализация шаблона класса
Наследование и шаблоны классов
Глава 9. Контейнеры
Типы контейнеров
Вектор
Итераторы
Операции с векторами
Array
List
Forward_list
Deque
Стек std::stack
Очередь std::queue
Очередь приоритетов std::priority_queue
Множества
Словарь std::map
Span
Глава 10. Строки
Определение строк
Строки с поддержкой Unicode
Преобразование типов и строки
Сравнение строк
Получение подстроки и проверка начала и конца строки
Поиск подстроки
Изменение строки
Операции с символами
Программа подсчета слов
Тип std:string_view
Глава 11. Семантика перемещения
rvalue
Конструктор перемещения
Оператор присваивания с перемещением
Роль noexcept при перемещении
Глава 12. Объекты функций и лямбда-выражения
Объекты функций
Лямбда-выражения
Захват внешних значений в лямбда-выражениях
Шаблон std::function<>
Глава 13. Алгоритмы и представления
Минимальный и максимальный элементы
Поиск элементов
Копирование элементов
Удаление элементов и идиома Remove-Erase Idiom
Сортировка
Представления. Фильтрация
Проекция данных
Пропуск элементов. drop_view и drop_while_view
Извлечение диапазона элементов. take_view и take_while_view
Цепочки представлений
Глава 14. Ограничения шаблонов
Оператор requires
Концепты
Выражение requires
Ограничения типа для auto
Глава 15. Потоки и система ввода-вывода
Базовые типы для работы с потоками
Файловые потоки. Открытие и закрытие
Чтение и запись текстовых файлов
Переопределение операторов ввода и вывода
Глава 16. Стандартная библиотека C++
Математические константы и операции
Форматирование строк и функция format
std::optional<T>
Глава 17. Идиомы С++
Управление ресурсами. Идиома RAII
Идиома копирования и замены
Идиома Move-and-Swap
Глава 18. Среды разработки
Первая программа в Visual Studio
Первая программа в Qt Creator