Safely converts pointers and references to classes up, down, and sideways along the inheritance hierarchy.
Syntax
dynamic_cast < new_type > ( expression )
new_type - pointer to complete class type, reference to complete class type, or pointer to (optionally cv-qualified) void expression - lvalue of a complete class type if new_type is a reference, prvalue of a pointer to complete class type if new_type is a pointer.
If the cast is successful, dynamic_cast returns