Это не компилируется в C ++:
class A { }; class B : public A { }; ... A *a = new B(); B *b = dynamic_cast<B*>(a);