Перейти к содержимому

Магистерский курс 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 Тут пока пусто