12.3. The Typeid Operator

The typeid() operator determines an object's dynamic type or static type. Here's the format.

const Type_info & typeid(Type) 
const Type_info & typeid(expression)

Type is a built-in or user-defined type. Both formats return a reference to a Type_info object, which we will examine shortly. If Type is polymorphic, typeid() returns a run-time dynamic type; otherwise, it returns a compile-time static type. The use of typeid() in programs requires header file <typeinfo.h>.

To make working with object types convenient, typeid() provides the following notations.

typeid(a) == typeid(b) returns true if a and b are the same type
typeid(a) != typeid(b) returns true if a and b are not the same type
typeid(a).name() returns the name ...

Get Navigating C++ and Object-Oriented Design now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.