Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Elvis,
22. Okt 2012
"const" scheint hier eine Eigenart zu sein, da hierbei keine Zuweisungen passieren können.
Deshalb muss da kein _AddRef oder _Release ausgeführt werden.
Diese 2 Methoden werden innnerhalb von DoSomething aufgerufen, nicht davor/danach. Dass hierbei etwas temporär irgendwo abgelegt wird ist doch unerheblich?
Ohne const hätten sie sich Interfaces fast sparen können...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Elvis,
22. Okt 2012
Nope, wie kommst du da drauf? :gruebel:
"Const" ist eines der wenigen Mittel, mit den man in Delphi überhaupt mit Interfaces arbeiten konnte, wenn man nicht komplett RefCounting genutzt hatte.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Elvis,
22. Okt 2012
Wenn eine Interface-Referenz per const übergeben wird, wird keine autom. Referenzzählung gemacht.
procedure TOtherClass.Test(const AFoo: IFoo);
begin
AFoo.DoSomething();
end;
Natürlich kann die Implementierung von DoSomething wiederum zu Referenzzählungsproblemen führen.
Aber nicht weil es auf eien Interface-Referenz ausgeführt wird, sondern weil dort vllt AFoo als Interface irgendwo...