/*
FH Giessen Friedberg                                                         Uebung 05
C++
Prof. Dr. Henrich

Hinweis:    Erstellen Sie in Aufgabe 1 und 3 zunächst ein Klassenmodell (auf Papier)!

Ue1
Wir modellieren in unserem Anwendungsbereich Zahlen.
Ein Integer ist eine spezielle Zahl. Jede Zahl kann inkrementiert und mit einer Methode
show() ausgegeben werden. Modulo_5 ist eine Zahl.
Darüber hinaus sei die folgende Klasse, die wir unverändert verwenden wollen, gegeben:

    class compl{
    protected:
         int re;
         int im;
    public:
         compl(int r=3,int i=7):re(r),im(i){}
         void ausgabe(){cout<<"Re: "<<re<<" Im: "<<im<<endl;}
    };

Legen Sie in main() einen Vektor aus Basisklassenzeigern an. Legen Sie Instanzen an,
wobei der Benutzer entscheidet welcher Zahlentyp angelegt werden soll und wie die
Instanzen initialisiert werden.
Inkrementieren Sie anschliessend in einer Schleife alle Instanzen und geben diese aus.

Ue2
Erweitern Sie Aufgabe 1 so, daß beim Programmstart und nach dem Anlegen ausgegeben wird
wieviele Instanzen des Typs Zahl und wieviele Instanzen des Typs Integer angelegt sind.

Ue3
Erstellen Sie eine Klasse Vektor und eine Klasse Matrix so, daß folgendes ausführbar ist:

 void main(){                    Ausgaben;
      Matrix m;                    Matrix:    1 2
                                              2 4
      m.show();                    Vektor:      7
      Vektor v;                                 8
      v.show();                    Produkt:     23
      (m*v).show();                             46
 }
Die Vektordimension = 2 (fest) und die Matrix hat prinzipiell 2 Zeilen und 2 Spalten.
Alle Datenelemente sind privat, wobei auch keine get- und set-Methoden verwendet werden
sollen. Zugriffsrechte können über friend-Methoden
(keine friend-Klasse) falls notwendig vergeben werden.
/*