Магистерский курс C++ (МФТИ, 2022-2023). Лекция 18. Динамический полиморфизм.
Konstantin Vladimirov
0:00 / 0:00
Магистерский курс C++ (МФТИ, 2022-2023). Лекция 18. Динамический полиморфизм.
9 172 просмотра · 3 года назад
Konstantin Vladimirov
33 тыс. подписчиков
9 172 просмотра · 3 года назад
Лекции в магистратуре МФТИ по современному C++ на русском языке. Кафедра микропроцессорных технологий.
На этой лекции мы поговорим о неудобной и в чём-то даже неуютной теме -- динамическом полиморфизме в C++. Мы рассмотрим несколько альтернатив, включая CRTP, ручное управление таблицами и инвесрию полиморфизма Мы также углубимся в детали работы статического приведения типов. В конце всё это сойдётся вместе, но станет немного грустно и безнадёжно.
Лектор: Константин Владимиров.
Дата лекции: 1 марта 2023 года.
Съёмка: Марк Гончаров
Звук: Юлий Тарасов.
Предыдущая лекция: • Магистерский курс C++ (МФТИ, 2022-2023). Л...
Следующая лекция: • Магистерский курс C++ (МФТИ, 2022-2023). Л...
Слайды ко всем лекциям: https://sourceforge.net/projects/cpp-...
Примеры кода ко всем лекциям: https://github.com/tilir/cpp-masters
Timeline
00:00 Мотивация динамического полиморфизма
06:35 Виртуальные функции
12:45 CRTP как альтернатива общему интерфейсу
20:38 Виртуальное копирование и CRTP mixins
28:35 Dreaded diamond и симметрии
39:30 Виртуальное наследование
47:55 Динамическое приведение
53:45 Проблемы виртуальных функций
01:00:20 Задача Дионне и ручное управление таблицами
01:14:00 Инверсия Шона Парента
01:25:55 Завершение и обзор литературы
Errata
Тут пока пусто