dynamic_cast ошибка C2683: is not a polymorphic type
Если при использовании dynamic_cast вы ловили ошибку компиляции C2683, то вам необходимо просто добавить к классу виртуальную функцию или деструктор.
class Base1{}; class Base2 { virtual ~Base2() {;} }; class A : public Base1{}; class B : public Base2{}; Base1* pBase1 = new Base1(); Base2* pBase2 = new Base2(); A* pA = dynamic_cast(pBase1); // error C2683: 'dynamic_cast' // : 'Base1' is not a polymorphic type B* pB = dynamic_cast(pBase2); // OK