ZGeoObj nz2(z2); { // Testen der Initialisierung/Zuweisung: cout << "neues ZGeoObj nz2 mit Flaeche " << nz2.flaeche() << endl; nz2 = z1; cout << "neues ZGeoObj nz2 jetzt mit Flaeche " << nz2.flaeche() << endl; nz2.Add(*(new Kreis(Punkt(3.0, 4.0), 10.0))); GeoObj* pk = nz2.GetGeoObj(2); if((pk) && (nz2.GetGeoObj(2)->GetTypeString() == "[Kreis]")) cout << "nz2[2] ist dynamischer Kreis mit Flaeche: " << pk->flaeche() << endl; cout << "Flaeche nz2 daher jetzt: " << nz2.flaeche() << endl; delete nz2.Remove(*pk); cout << "Kreis aus nz2 entfernt und geloescht. Flaeche wieder: " << nz2.flaeche() << endl; } { // unendliche Rekursion: z1.Add(z2); cout << "Flaeche von z1: " << flush; cout << z1.flaeche() << endl; } }