Thema: Delphi Einstieg in die OOP

Einzelnen Beitrag anzeigen

sveno2k5

Registriert seit: 24. Jan 2005
7 Beiträge
 
#8

Re: Einstieg in die OOP

  Alt 2. Feb 2005, 19:26
Habe gerade mal angefangen zu lesen, und den Anfang hab ichs ehr gut verstanden
Bei den Destruktoren hab ich aber ein paar Fragen noch.

Ist "ein Objekt aus dem Speicher löschen" gleichbedeutend mit "Die Objektreferenz auf nil setzen"? Wenn ja, warum löscht man die Objektreferenz nicht einfach?

Warum ist es nötig Objekte aus dem Speicher zu löschen? Sie nehmen ja nicht Unmengen an Ressourcen ein.

"Da der Destruktor in der Lage sein muss,Objekte freizugeben,die unvollständig erstellt wurden und deshalb
nil sind,sollte beim Freigeben eines solchen Objektes unbedingt vorher auf nil getestet werden.Wird ein
Objekt mit der Methode Free freigegeben,wird die Prüfung automatisch durchgeführt."

Warum funktioniert destroy nicht wenn die Referenz nil ist? Was macht free wenn die Referenz nil ist?

"Nach dem Aufruf von Free wurde das Objekt zwar aus dem Speicher entfernt,der Zeiger enthält aber
immer noch die Adresse des Objektes.Eine Abfrage mit Assigned liefert also nach einem Aufruf von
Free immer noch True .Entweder setzt man den Zeiger explizit auf nil oder man verwendet die Prozedur
FreeAndNil ."

Auch hier wieder, warum löscht man den Zeiger nicht einfach (Der Zeiger ist doch die Objektreferenz oder?)

Gruss Sven
  Mit Zitat antworten Zitat