001
13.12.2006, 23:54 Uhr
~stephanw
Gast
|
erase() löscht die Elemente aus dem Vector. Wenn in dem Vector komplette Objekte liegen, werden diese zerstört. Wenn es ein Vektor von Zeigern ist, werden nur die Zeiger aus dem Vector entfernt. Wenn Du die zugehörigen Objekte löschen willst, musst Du vorher delete auf den Zeiger aufrufen.
In Deinem Beispiel legst Du einen User per new an. In den Vector legst Du eine Kopie des Objektes. Erase() löscht dann die Kopie im Vector, dass per new angelegte Objekt lebt weiter. Entweder legst Du es gar nicht per new an sondern ganz normal als lokale Variable, dann kannst Du es in den Vektor kopieren und alles ist gut. Oder Du machst aus Deinem Vector ein Vector von Zeigern und musst wie schon gesagt das Objekt dann manuell löschen. |