RTTI
Run Time Type Identification (RTTI) uses type
information stored in objects by the compiler to determine
at run time the actual type of an object pointed or referred
to.
RTTI can only be used when at least one function has
been declared to be virtual in the class or in a direct or
indirect base class.
For the full benefits of dynamic binding, applications must
write code independent of the type of object being pointed
or referred to.
RTTI provides a way for client applications to determine
the type of an object without having to compromise their
use of dynamic binding.