Es heisst ganz einfach:
Wenn ich eine Instanz erzeuge und das direkt als ein Argument/Parameter übergebe, dann springt der Referenzzähler nicht an.
Delphi-Quellcode:
IFoo = interface
procedure Bar;
end;
procedure foo( aFoo : IFoo );
begin
aFoo.Bar;
end;
var
LFoo : IInterface;
LFooObj : TFoo;
foo( TFoo.Create ); // aufpassen, hier kann es zu einem Leak kommen
LFoo := TFoo.Create;
foo( LFoo ); // alles in Butter
LFooObj := TFoo.Create;
foo( LFooObj ); // aufpassen, hier wird auch keine Referenz erhöht!
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)