Three level inheritance : class hierarchy « Class « C++ Tutorial






#include <iostream>
using namespace std;

class base {
public:
  base() { 
     cout << "Constructing base\n"; 
  }
  ~base() { 
     cout << "Destructing base\n"; 
  }
};

class derived1 : public base {
public:
  derived1() { 
     cout << "Constructing derived1\n"; 
  }
  ~derived1() { 
     cout << "Destructing derived1\n"; 
  }
};

class derived2: public derived1 {
public:
  derived2() { 
     cout << "Constructing derived2\n"; 
  }
  ~derived2() { 
     cout << "Destructing derived2\n"; 
  }
};

int main()
{
  derived2 ob;
  return 0;
}
Constructing base
Constructing derived1
Constructing derived2
Destructing derived2
Destructing derived1
Destructing base








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