Class C++ Tutorial

#include  
#include  
using namespace std; 
 
class Shape { 
  // private 
  double width; 
  double height; 
public: 
  Shape() { 
    width = height = 0.0; 
  } 
 
  Shape(double w, double h) { 
    width = w; 
    height = h; 
  } 
 
  Shape(double x) { 
    width = height = x; 
  } 
 
  void display() { 
    cout << "Width and height are " << width << " and " << height << "\n"; 
  } 
 
  double getWidth() { return width; } 
  double getHeight() { return height; } 
  void setWidth(double w) { width = w; } 
  void setHeight(double h) { height = h; } 
}; 
 
class Triangle : public Shape { 
  char style[20];
public: 
 
  /* This automatically invokes the default constructor of Shape. */ 
  Triangle() { 
    strcpy(style, "unknown"); 
  } 
 
  Triangle(char *str, double w, double h) : Shape(w, h) { 
    strcpy(style, str); 
  } 
   
  Triangle(double x) : Shape(x) { 
    strcpy(style, "isosceles");  
  } 
 
  double area() { 
    return getWidth() * getHeight() / 2; 
  } 
 
  void showStyle() { 
    cout << "Triangle is " << style << "\n"; 
  } 
}; 
 
class NameTriangle : public Triangle { 
  char name[20]; 
public: 
  NameTriangle(char *clr, char *style, double w, double h) : Triangle(style, w,
 h) { 
    strcpy(name, clr); 
  } 
 
  void displayName() { 
    cout << "Name is " << name << "\n"; 
  } 
}; 
 
int main() { 
  NameTriangle t1("A", "right", 8.0, 12.0); 
  NameTriangle t2("B", "isosceles", 2.0, 2.0); 
 
  t1.showStyle(); 
  t1.display(); 
  t1.displayName(); 
  cout << "Area is " << t1.area() << "\n"; 
 
  t2.showStyle(); 
  t2.display(); 
  t2.displayName(); 
  cout << "Area is " << t2.area() << "\n"; 
 
  return 0; 
}
Triangle is right
Width and height are 8 and 12
Name is A
Area is 48
Triangle is isosceles
Width and height are 2 and 2
Name is B
Area is 2