Type Information

This lesson describes techniques for obtaining the type of an entity.

We'll cover the following

typeid #

We have seen numerous instances of the typeid operator in this course. It can be used to retrieve the type of a variable or object at runtime. Because of this, it works well with pointers.

To use typeid, we must include the <typeinfo> header. The operator returns a type_info object that has various methods of its own.

Here’s how typeid can be used:

Circle c(5.0);
const std::type_info& t = typeid(Circle); 
const std::type_info& v = typeid(c);

Notice the & in the assignment operations. This specifies that this variable will be a reference to a type object. We must also make it const because each type has a single type_info instance associated with it.

type_info #

A type_info object stores information about a type. One useful feature is that it allows two types to be compared using comparison operators.

It can also tell us the name of the type through the name() method.

if (typeid(a) == typeid(b)){
  // a and b are of the same type
}
std::cout << typeid(a).name() << std::endl;

The name is implementation-defined and must be the same for each variable of the same type.

Example #

Get hands-on with 1200+ tech skills courses.