Учебник ООП C++20
Основы
Введение
Классы и объекты
Поля
Методы
Параметры методов
Обращение через this
Несколько объектов
Конструктор
Список инициализации
Конструктор по умолчанию
Перегрузка конструкторов
Значения по умолчанию
Делегирующий конструктор
Явный конструктор
Деструктор
Приватные поля
Приватные методы
Геттеры
Сеттеры
Константный метод
Константный объект
Структура и класс
Практика
Объекты в коде
Введение
Массив объектов
Вектор объектов
Словарь объектов
Объект внутри объекта
Класс внутри класса
Цепочки вызовов
Указатель на объект
Стрелка
Создание в куче - new
Удаление объекта - delete
Копия объекта и копия указателя
Ссылка на объект
Практика
Копирование
Введение
Копия по умолчанию
Поверхностная копия
Конструктор копирования
Оператор присваивания
Запрет копии
Правило трех
Практика
Операторы
Введение
Оператор сложения
Остальные арифметические
Унарный минус
Оператор равенства
Оператор меньше
Оператор индекса
Оператор вызова
Вывод объекта
Дружественная функция
Ввод объекта
Инкремент
Начало и конец
Практика
Наследование
Введение
Класс-потомок
Методы родителя
Методы потомка
Сокрытие метода
Виртуальный метод
Ключевое слово override
Вызов метода базы
Конструктор базы
Доступ protected
Закрытые члены базы
Запрет переопределения
Запрет наследования
Виртуальный деструктор
Срезание объекта
Указатель на базу
Приведение вниз
Неудачное приведение
Две базы
Закрытое наследование
Свое исключение
Практика
Абстрактные классы
Введение
Абстрактный класс
Чистый виртуальный метод
Реализация в потомке
Общий код
Конструктор
Нельзя создать объект
Вектор указателей на базу
Практика
Перечисления
Введение
Перечисление enum class
Значение перечисления
Сравнение значений
Ветки switch
Явный номер
Приведение к int
Параметр и результат
Поле класса
Практика
Статические члены
Введение
Статическое поле
Статический метод
Вызов без объекта
Константа класса
Счетчик объектов
Практика
Файлы и пространства имен
Введение
Заголовочный файл
Определение в cpp
Страж заголовка
Сборка нескольких файлов
Класс в заголовке
Пространство имен
Вложенное пространство
Безымянное пространство
Псевдоним пространства
Одно имя через using
Практика
Перемещение
Введение
Временный объект
Функция move
Конструктор перемещения
Оператор перемещения
Правило пяти
Возврат объекта
Практика
Умные указатели
Введение
Единственный указатель
Создание через make_unique
Передача владения
Указатель на базу
Общий указатель
Создание через make_shared
Счетчик владельцев
Слабый указатель
Блокировка слабого указателя
Практика