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

Ue1
In der vorliegenden Aufgabe soll das Entwurfsmuster Klassenadapter verwendet werden
(siehe Vorlesung: Implementierungs-Vererbung Seite 7 ff.)

---->    siehe Hompage Verweis: Klassenmodell

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 spezielle 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
Das folgende Programm enthält 6 Fehler. Welche?

class A1{
 const int i;
 friend void frei(B* ptr);
public:
 A1(){i=7;}
 virtual void fn(){cout<<"A1"<<i;};
 virtual void test()=0;
};

class A2{
public:
 virtual void fn(int)=0;
};

class B: public A1,public A2{
 int j;
public:
 void fn(int){}
};

void frei(B* ptr){cout<<ptr->i<<ptr->j;}
 

void main(){
 B b;
 b.fn();
 frei(&b);
 A1* aptr=&b;
 aptr->fn();
 aptr->fn(5);
}
*/