print type name of what ptr points at : typeid « Development « C++ Tutorial






#include <iostream>
#include <typeinfo>
using namespace std;
class Base {
public:
  Base():hide(0){}
  void mutate(int i){ hide = i;}
  void print()const {cout << "hide in Base = "
                   << hide << endl;}
private:
  int hide;
};


class One: public Base {
public:
  One():Base(),data(0) {}
  void mutate(int i){ data = i;}
  void print()const {cout << "data in One = "
                           << data << endl;}
private:
  int data;
};

int main ()
{
   Base* bptr; One* Derived;
   cout << typeid(bptr).name() << endl;
   cout << typeid(Derived).name() << endl;
   if (typeid(bptr) == typeid(Derived))
      cout << "type bprt & Derived same" << endl;
}








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