Einzelnen Beitrag anzeigen

Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.641 Beiträge
 
#5

Re: InstanceSize in D3 und D7

  Alt 20. Jun 2005, 09:00
Zitat von SirThornberry:
naja, macht es überhaupt sinn das gesammte Object abzuspeichern? Wozu braucht man dann Constructor, Destructor etc. beim abspeichern. Wäre es nicht sinnvoller gewesen nur die Werte zu speichern die auch wirklich gespeichert werden müssen?
Wird doch gemacht.
Die Methoden auf dem Objekt liegen sowieso nie im Objekt selber, sondern nur einmal im kompletten Programm. Die RTTI weiss wo die Methode liegt, im Objekt selber liegt - wenn überhaupt, das weiss ich leider nicht zu 100% - ein Pointer auf den ausführbaren Codebereich.

Deswegen muss bei Methoden ja auch immer ein Pointer auf den Datenbereich der aufrufenden Instanz als erster (versteckter) Parameter an den Codebereich übergeben werden, damit man überhaupt auf den Properties des richtigen Objektes arbeitet.

Das hat auch den manchmal unangenehmen Nebeneffekt, das man Methoden auf Objekten aufrufen kann, die schon freigegeben sind. - Wenn diese Methoden nicht auf Properties des Objektes zugreifen sondern z.B. reine Berechnungen auf den Parametern machen, dann funktioniert das sogar. Nur wenn ein Property geändert werden soll, dann kommt es zu einer Speicherschutzverletzung, weil der Speicher für das Objekt ja schon bei der Freigabe an das OS zurückgegeben wurde.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat