cout << "--------------" << endl; { // Testen der Entfernen-Operation: GeoObj* pr1 = z1.GetGeoObj(0); if(*pr1 == r1) cout << "z1[0] ist Rechteck r1 mit Flaeche " << pr1->flaeche() << endl; z2.Add(*(z1.Remove(*pr1))); cout << "r1 aus z1 entfernt. Flaeche z1 jetzt: " << z1.flaeche() << endl; cout << "r1 zu z2 addiert. Flaeche z2 noch immer: " << z2.flaeche() << endl; } { // Testen der Typabfragen: GeoObj* pz1 = z2.GetGeoObj(0); if(*pz1 == z1) cout << "z2[0] ist ZGeoObj z1 mit Flaeche " << pz1->flaeche() << endl; if((z1.GetGeoObj(1)) && (z1.GetGeoObj(1)->GetTypeString() == "[Dreieck]")) cout << "z1[1] ist ein Dreieck" << endl; }