Тематический план

  • Общее

    • Основы создания классов. Доступ к членам класса. Создание массива объектов. Дружественные функции. 

    • Перегрузка операций. Виды конструкторов. Return Value Optimization (RVO). 

    • Функции-члены, которые генерируются автоматически. Уровни безопасности. Идиома copy-and-swap. Перегрузка преобразования типов. Статические члены класса. move-семантика (конструктор и присваивание).

    • move-семантика (конструктор и присваивание). Открытое наследование, включение

    • Полиморфизм. Виртуальные методы. Абстрактные классы. Полиморфные контейнеры

    • RTTI, dynamic_cast, typeid, закрытое наследование, шаблоны: инстанцирование, явная специализация, параметры шаблонов. Коллекции и итераторы

    • Классы для рекурсивных типов данных.

    • Коллекции и итераторы. Линейный список и  итератор для него. Реализация функций с параметрами-итераторами. Шаблон класса matrix для представления матрицы как вектора, элементами которого являются векторы.

    • Стандартная библиотека шаблонов: введение. Требования к контейнерам и к элементам контейнера. Последовательные контейнеры

    • Ассоциативные контейнеры. Основные типы итераторов

    • Итераторы ввода/вывода. Однонаправленный Однонаправленные и двунаправленные итераторы. Итераторы произвольного доступа. 

    • Алгоритмы STL. Алгоритмы, немодифицирующие последовательность. Алгоритмы, модифицирующие последовательность. Захват переменных из внешнего контекста. Объекты функции (функторы).