A simple class hierarchy. : class hierarchy « Class « C++ Tutorial






#include <iostream> 
#include <cstring> 
using namespace std; 
 
class Shape { 
public: 
  double width; 
  double height; 
 
  void display() { 
    cout << "Width and height are " <<  width << " and " << height << "\n"; 
  } 
}; 
 
// Triangle is derived from Shape. 
class Triangle : public Shape { 
public: 
  char style[20]; 
   
  double area() { 
    return width * height / 2; 
  } 
 
  void showStyle() { 
    cout << "Triangle is " << style << "\n"; 
  } 
}; 
 
int main() { 
  Triangle t1; 
  Triangle t2; 
 
  t1.width = 4.0; 
  t1.height = 4.0; 
  strcpy(t1.style, "isosceles"); 
 
  t2.width = 8.0; 
  t2.height = 12.0; 
  strcpy(t2.style, "right"); 
 
  t1.showStyle(); 
  t1.display(); 
  cout << "Area is " << t1.area() << "\n"; 
 
  t2.showStyle(); 
  t2.display(); 
  cout << "Area is " << t2.area() << "\n"; 
 
  return 0; 
}
Triangle is isosceles
Width and height are 4 and 4
Area is 8
Triangle is right
Width and height are 8 and 12
Area is 48








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