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

Ue1
Erweitern Sie das Programm aus Uebung 9 Aufgabe 1 wie folgt:
1.    Erzeugen Sie einen Programmabsturz durch Verwenden von Kopien.
2.    Beheben Sie das Problem.
3.    Erzeugen Sie eine logisch falsche Situation durch Verwendung der Zuweisung.
4.    Beheben Sie das Problem.
5.    Vervollständigen Sie die Klasse so, daß Sie als Basisklasse geeignet wäre.

Ue2
Erstellen Sie ein Funktionstemplate, das das Minimum von zwei Werten zurückgibt.
Wenden Sie die Funktion sowohl auf  int und double als auch auf Instanzen von
Modulo5 (Klasse erstellen!) an. Testen Sie verschiedene Aufrufvarianten .

Ue3
Welche Ausgaben erzeugt das folgende Programm?
(Anmerkung: Der Einfachheit halber sind alle Elemente public!)
Überprüfen Sie das Programm im Hinblick auf Speicherlecks und fügen Sie gegebenenfalls
erforderliche Änderungen ein.

 class A{
 public:
   int i;
   A():i(5){}
 };

 class B{
 public:
   int j;
   B():j(6){}
 };

 class C : public B{
 public:
   int* ip;
   A a;
   C(){ip=new int(7);}
   void show(){cout<<" i: "<<a.i<<" j: "<<j<<" *ip: "<<*ip<<endl;}
 };

 void main(){
   C* cp = new C;
   (*cp).show();
   (*cp).a.i=55;
   (*cp).j=66;
   *(*cp).ip=77;
   C c2=(*cp);
   delete cp;
   B* bp = new C;
   delete bp;
   c2.show();
 }
*/