Einzelnen Beitrag anzeigen

Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#4

AW: Supports ohne out Parameter

  Alt 10. Okt 2012, 10:47
Die anderen haben es ja schon erklärt. Das Support ohne out-Parameter ruft intern das mit out-Parameter auf, wobei das temporäre Interface beim Verlassen der Funktion freigegeben wird. Da a ein TFirstSecond ist, was von TInterfacedObject abgeleitet wurde, ist der interne Referenzzähler nach dem Create Null. Wenn jetzt die implizite Referenzzählung ein Add/Release ausführt, wird beim Release der Referenzzähler wieder zu Null und die Instanz wird freigegeben. Ab dann zeigt a auf eine nicht mehr existente Instanz.

Wenn du sowohl mit Interfaces als auch mit Objekt-Instanzen arbeiten willst, kannst du statt TInterfaceObject auch TInterfacedPersistent nehmen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat