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.