TGViewer
C++ and other lectures C++ and other lectures @cpp_lects_rus · 9.94K subscribers
Post #350 10.1K
Выложил лекцию по динамическому полиморфизму на английском языке.

https://youtu.be/-hAxKYFY_7c

В этой лекции мы поговорим про динамический полиморфизм в C++ -- одну из самых неоднозначных и часто неправильно понимаемых тем языка. Мы обсудим, зачем он вообще нужен, какие реальные задачи он решает и почему полностью отказаться от него не получается. Разберём классическую реализацию через виртуальные функции, их стоимость, ограничения и подводные камни -- включая множественное наследование, RTTI и dynamic_cast. Далее мы рассмотрим альтернативы: CRTP и ручное управление таблицами диспетчеризации, их плюсы и минусы. В конце придём к более современным подходам -- инверсии полиморфизма и семантике значения в духе Шона Парента, где динамический полиморфизм скрыт внутри и не протекает в пользовательский код. Лекция оставляет открытым вопрос о том, как же правильно сочетать языковые механизмы и библиотечные абстракции и есть ли у динамического полиморфизма окончательное решение в современном C++.

00:00 Введение, мотивация для динамического полиморфизма.
03:40 Виртуальные функции и полиморфные интерфейсы.
12:22 Альтернатива: интерфейсы через CRTP.
16:25 CRTP mixins и немного deducing this.
24:45 Множественное наследование и симметрия RTTI-механизмов.
31:00 Виртуальное наследование.
37:06 dynamic_cast и его три смысла.
46:45 Снова о мотивации рантайм-полиморфизма и критика виртуальных функций.
51:18 Проблема Дионне и её разнообразные решения.
01:00:50 Решение Шона Парента: переиспользование и скрытие полиморфизма.
01:04:00 Открытый финал и список литературы.

#cpp_postgraduate
  • 🔥 52
  • ❤ 11
  • 😱 8
  • 👍 3
More from @cpp_lects_rus
  1. Sep 22, 2026В четверг вечером провожу встречу со студентами и преподавателями ВШЭ. В планах: короткий…
  2. Sep 19, 2026Многие люди, прошедшие мой базовый курс языка C спрашивали -- а что дальше. Ведь мир языка…
  3. Sep 12, 2026Участвую в Ghost in the Code, рассылке YADRO о работе с легаси на C++. Удивительно ламповы…
  4. Sep 10, 2026Выложили доклад моего аспиранта и коллеги Владислава Белова @sick_hoof по алиасингу памяти…
  5. Sep 5, 2026Мне начали кидать в личку всякие странные видео из бентосных интернетов, появляющиеся (сей…
  6. Sep 3, 2026Выложили доклад моего студента и коллеги Саши Романова про рефлексию в C++. С моей точки з…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →