Hallo,
Zitat von
jbg:
Was willst du damit sagen? Interfaces sind sehr wohl ein Sprachfeature von Delphi (C++ kennt keine Interfaces im aktuellen Standard, da werden abstrakte Klasse dafür "misbraucht"). Es kommt nur darauf an, was das dahintersteckende Objekt bei _AddRef und _Release Aufrufen macht. Hat man z.B. TInterfacedPersistent oder gar TComponent als Implementor-Basisklasse, kann man sehr wohl Interfaces und Objektreferenzen mischen. Man muss halt bei Interfaces wissen, was so im Hintergrund abläuft.
Damit will ich sagen, dass man eben nicht Klassen und Interfaces mischen kann, weil das so in Delphi nicht geplant war. Interfaces wurden "angebaut", anstatt sie richtig zu integrieren. Deshalb haben auch Interfaces eine Referenzzählung und Klassen nicht. Wenn man weiß, wie man damit umgeht, ist das kein Problem. Leider erledigt das aber eben nicht die Sprache (bzw. der Compiler) für Dich, sondern Du musst es selbst erledigen.
Schau Dir mal .Net an. Da kannst Du immer Klassen und Interfaces mischen, weil das in allen Sprachen von Anfang an so vorgesehen war (die Referenzzählung ist ja sowieso für den GC notwendig).
Gruß
xaromz