Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

Re: selbstlöschenden Pointer erstellen

  Alt 29. Mär 2010, 11:16
Zitat von Stevie:
Und nur Konstruktoren für Records (wenn auch nur parametrisierte) und keine Destruktoren, halte ich für inkonsequent.
Dabei muß es garnicht so schwer sein sowas zu implementieren.

Delphi-Quellcode:
procedure test;
var x: TMyRecord;
begin
end;
FinalizeRecord wird hier doch eh immer beim END; aufgerufen, solange entsprechende Teile (Strings, dyn. Array oder Interfaces) enthalten sind.
Und genau da könnte man leicht auch einen Record-Destructor integrieren ... einfach nur wie einen virtuellen Datentypen in der RTTI des Records.

http://qc.embarcadero.com/wc/qcmain.aspx?d=82524

Da es sowas aber nicht in Delphi gibt.

Uber den obengenannten Typen kann man grundsärtlich erstmal jeden Record-Pointer in ein Interface umwandeln.

Wenn die Records solche Constructoren/Destructoren hätten, dann könnte man sie qusa als eine Mischung aus Interface und Objekt ansehn.

Schnelle Funktionsaufrufe über statische Prozeduren (wie bei Objekten ohne die ganzen virtuellen Prozeduren und ohne den Verwaltungsoverhead der Vererbungshirachie.
Und dennoch automatische Freigaben, wie bei Interfaces.
$2B or not $2B
  Mit Zitat antworten Zitat