                              // Kapitel 5 - Programm 5 - KONSMAST.CPP
#include <iostream.h>

class Rechteck
{              // Eine einfache Klasse
   int Hoehe;
   int Breite;
public:
   Rechteck(void);                  // mit einem Konstrutor,
   int Flaeche(void);               // zwei Methoden,
   void Initialisiere(int, int);
   ~Rechteck(void);                 // und einem Destruktor
};

Rechteck::Rechteck(void)            // Kostruktor
{
   Hoehe = 6;
   Breite = 6;
}

int Rechteck::Flaeche(void)         //Fläche des Rechtecks
{
   return Hoehe * Breite;
}

void Rechteck::Initialisiere(int IniHoehe, int IniBreite)
{
   Hoehe = IniHoehe;
   Breite = IniBreite;
}

Rechteck::~Rechteck(void)           // Destruktor
{
   Hoehe = 0;
   Breite = 0;
}

struct Mast
{
   int Laenge;
   int Tiefe;
};

int main()
{
Rechteck Box, Quadrat;
Mast Fahnenmast;

   cout << "Der Flaecheninhalt der Box ist " <<
                       Box.Flaeche() << "\n";
   cout << "Der Flaecheninhalt des Quadrates ist " <<
                       Quadrat.Flaeche() << "\n";

// Box.Hoehe = 12;
// Box.Breite = 10;
// Quadrat.Hoehe = Quadrat.Breite = 8;

   Box.Initialisiere(12, 10);
   Quadrat.Initialisiere(8, 8);

   Fahnenmast.Laenge = 50;
   Fahnenmast.Tiefe = 6;

   cout << "Der Flaecheninhalt der Box ist " <<
                       Box.Flaeche() << "\n";
   cout << "Der Flaecheninhalt des Quadrates ist " <<
                       Quadrat.Flaeche() << "\n";
// cout << "Die wirre Flaeche ist " <<
//                     Flaeche(Quadrat.Hoehe, Box.Breite) << "\n";
// cout << "Die boese Flaeche ist " <<
//                     Flaeche(Quadrat.Hoehe, Fahnenmast.Tiefe) << "\n";

   return 0;
}


// Ergebnis beim Ausführen
//
// Der Flaecheninhalt der Box ist 36
// Der Flaecheninhalt des Quadrates ist 36
// Der Flaecheninhalt der Box ist 120
// Der Flaecheninhalt des Quadrates ist 64
