Einzelnen Beitrag anzeigen

Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#45

AW: Vorteile von Records gegenüber Objekten

  Alt 8. Mai 2011, 22:28
Wenn du bei einem Record mit operator überladung folgendes machst:
Delphi-Quellcode:
a := 1;
b := 2;
a := a + b;
wird bei der Addition a eine neue record Instanz zugewiesen.
Bei operator Überladungen wird bei binären Operationen für Result eine neue record Instanz erzeugt.
Was würde also passieren, wenn das diesem Fall Objekte wären? Wie wollte man den Speicher verwalten, wenn munter für Result neue Instanzen erzeugt würden und die Referenzen von Objekten in Variablen, denen dieses Ergebnis zugewiesen wird verloren gehen?
Delphi-Quellcode:
a := TMyObject.Create;
b := TMyObject.Create;
a := a + b;
Was würde hier passieren? Es müsste eine neue Instanz als Ergebnis für die Addition erstellt werden und die Referenz auf die vorher in Zeile 2 erstellte Instanz ginge bei der Zuweisung in Zeile 3 verloren.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat