Using typeid: class pointer, base class, derived class, : typeid « Development « C++ Tutorial






#include <iostream>
#include <ostream>
#include <typeinfo>

class base {
public:
  virtual ~base() {}
};

class derived : public base {};


int main()
{
  base* b = new derived;
  std::cout << typeid(*b).name() << '\n';      
  std::cout << typeid(base).name() << '\n';    
  derived* d = new derived;
  std::cout << typeid(*d).name() << '\n';      
  std::cout << typeid(derived).name() << '\n'; 
}
7derived
4base
7derived
7derived








5.24.typeid
5.24.1.Use typeid
5.24.2.Use typeid on a polymorphic class heirarchy
5.24.3.Compare the typeid for templates
5.24.4.Use a reference with typeid
5.24.5.Demonstrating run-time type id
5.24.6.Using typeid with templates
5.24.7.Using typeid: class pointer, base class, derived class,
5.24.8.typeid() function and RTTI must be enabled in compiler
5.24.9.Output the name of a typeid
5.24.10.print type name of what ptr points at
5.24.11.Using typeid: enum data type