динамичний_кас повинен зробити свою справу
TYPE& dynamic_cast<TYPE&> (object);
TYPE* dynamic_cast<TYPE*> (object);
dynamic_cast
Ключове слово кидає геодезичне від одного покажчика або посилального типу до іншого, виконуючи перевірку виконання для забезпечення достовірності гіпсі.
Якщо ви спробуєте передати покажчик на тип, який не є типом фактичного об'єкта, результатом виступу буде NULL. Якщо ви спробуєте привласнити посилання на тип, який не є типом фактичного об'єкта, команда буде видавати bad_cast
виняток.
Переконайтесь, що в базовому класі є принаймні одна віртуальна функція, щоб зробити так, щоб динамічна робота працювала.
Wikipedia тема часу виконання інформації про типі
RTTI доступний лише для класів, які є поліморфними, це означає, що вони мають принаймні один віртуальний метод. На практиці це не обмеження, оскільки базові класи повинні мати віртуальний деструктор, що дозволяє об'єктам похідних класів здійснювати належну очистку, якщо вони видалені з базового вказівника.