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