class ErwGanzWS : GanzWS { public void posit() { Knoten* knoten = anker; while (knoten != NULL) { if (knoten -> wert < 0) knoten -> wert = - knoten -> wert; knoten = knoten -> verb; } } }
bool Kreuzgang::flachGleich(const Kreuzgang& that) const { return aeusseresQuadrat == that.aeusseresQuadrat && inneresQuadrat == that.inneresQuadrat; }
bool Kreuzgang::istGleich(const Kreuzgang& that) const {
return aeusseresQuadrat->linksOben.x == aeusseresQuadrat->linksOben.x &&
aeusseresQuadrat->linksOben.x == that.aeusseresQuadrat->linksOben.x &&
aeusseresQuadrat->rechtsUnten.x == that.aeusseresQuadrat->rechtsUnten.x &&
aeusseresQuadrat->rechtsUnten.y == that.aeusseresQuadrat->rechtsUnten.y &&
inneresQuadrat->linksOben.x == inneresQuadrat->linksOben.x &&
inneresQuadrat->linksOben.x == that.inneresQuadrat->linksOben.x &&
inneresQuadrat->rechtsUnten.x == that.inneresQuadrat->rechtsUnten.x &&
inneresQuadrat->rechtsUnten.y == that.inneresQuadrat->rechtsUnten.y;
}
bool Kreuzgang::tiefGleich(const Kreuzgang& that) const { return istGleich(that) && aeusseresQuadrat->sichtbar == that.aeusseresQuadrat->sichtbar && inneresQuadrat->sichtbar == that.inneresQuadrat->sichtbar; }
· Die Konvertierung von Zeigern geschieht in C++ immer automatisch.
· Ein Datenabstraktionsmodul kann parameterlose Operationen enthalten, während ein ADT nicht.
Richtig: Das Modul enthält die Daten selbst; einer ADT-Operation muss das ADT-Objekt mitgegeben werden.
· Die Implementierung einer Schablone (.cpp) muss dem Benutzer zur Verfügung gestellt werden.
· Ein new-Aufruf in einem Destruktor produziert immer eine Speicherleiche.
Falsch: Nicht, wenn das Objekt im selben Destruktor mit delete gelöscht wird.
· Dynamisches Binden ist nur in Java möglich; in C++ wird immer statisch gebunden.
Falsch: .dll in C++ möglich
· Eine geerbte Variable kann in einem Objekt doppelt vorhanden sein.
Richtig: z.B. wenn zwei Oberklassen dieselbe Oberklasse haben.
· Die Reihungsimplementierung braucht weniger Speicherplatz als die Listenimplementierung.
Richtig/Falsch: weniger, weil keine Knoten-Referenzen benötigt werdenM; mehr, weil es leere Plätze gibt.
mit virtual: 1 2 3 1 2 3 2 3 1 1 1 3
ohne virtual: 1 2 3 1 2 3 1 1 1 1 1 1
Begründung: Der Zeigerzugriff und Referenzparameter mit virtual ist polymorph (Ausgabe der Unterklasse, weil Unterklassenobjekt), ohne virtual nicht (Ausgabe der Oberklasse, weil Oberklassenzeiger).