/*
Multiple Inheritance

In C++ it is perfectly possible that a class inherits members from more than one class. This is done by simply
separating the different base classes with commas in the derived class declaration.
*/

#include <iostream>
using namespace std;

class CPolygon {
      protected:
             int width, height;
      public:
             void set_values (int a, int b)
             { 
                  width=a; 
                  height=b;
             }
};

class COutput {
      public:
             void output (int i);
};

void COutput::output (int i) 
{
     cout << i << endl;
}

class CRectangle: public CPolygon, public COutput {
      public:
             int area ()
             { 
                 return (width * height); 
             }
};

class CTriangle: public CPolygon, public COutput {
      public:
             int area ()
             { 
                 return (width * height / 2); 
             }
};

int main () {
    CRectangle rect;
    CTriangle trgl;

    rect.set_values (4,5);
    trgl.set_values (4,5);
    rect.output (rect.area());
    trgl.output (trgl.area());

    std::cin.get();
    return (0);       
}
