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);
}
*/