12.6. Key Point Summary
RTTI provides a portable solution for extending class libraries and controlling object behaviors.
C++ provides three RTTI mechanisms: a dynamic_cast operator to downcast polymorphic types; a typeid() operator to identify exact types; and a type_info class to hold run-time type information.
Dynamic casts apply only to class hierarchies that relate to each subclass by public inheritance and have at least one virtual function in their base class. You may apply dynamic_cast to either pointers or references.
Use the pointer syntax when dynamic_cast failures are not an error; otherwise, use the reference syntax and provide a catch handler to trap bad_cast exceptions.
The typeid() operator determines an object's dynamic or static ...
Get Navigating C++ and Object-Oriented Design now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.