Use typeid to test type equality : class hierarchy « Class « C++ Tutorial






#include <iostream>
#include <typeinfo>

using namespace std;

class Base {};
class Derived : public Base {};

int main( ) {

   Base b, bb;
   Derived d;

   if (typeid(b) == typeid(d)) { // No
      cout << "b and d are of the same type.\n";
   }
   if (typeid(b) == typeid(bb)) { // Yes
      cout << "b and bb are of the same type.\n";
   }
   if (typeid(d) == typeid(Derived)) { // Yes
      cout << "d is of type Derived.\n";
   }
}
b and bb are of the same type.
d is of type Derived.








9.7.class hierarchy
9.7.1.A simple class hierarchy.
9.7.2.A multilevel hierarchy
9.7.3.Deriving ADTs from other ADTs
9.7.4.Use typeid to test type equality
9.7.5.Multiple base class constructing and destructing
9.7.6.Three level inheritance
9.7.7.Overload across class hiearchy
9.7.8.Shadow base class function in its two children classes
9.7.9.Reference another class in member function
9.7.10.Shadow function with the same name in base class
9.7.11.Inherit protected fields
9.7.12.Call constructor from base class