Wenn du mit Interfaces arbeiten willst, dann verwende die Objekte auch durchgängig nur als Interfaces, dann wirst du auch keine Probleme mit der Referenzzählöung bekommen.
fMy: IMyBase;
Oder du verwendest Klassen "ohne" Referenzzählung und regelst die Speicherverwaltung nur über das Objekt. (.Free)
Mir war so, als wenn Delphi schon eine Interface-Klasse ohne Referenzzählung besitzt (dachte die liegt neben TInterfacedObject), aber ich finde sie nicht.
(TPersistent und TComponent gäbe es noch, aber die sind wohl schon zu aufgebläht)
Notfalls einfach TInterfacedObject ableiten, bzw. in deiner Basisklasse das entsprechend überschreiben.
Delphi-Quellcode:
function TComponent._AddRef: Integer;
begin
Result := -1;
end;
function TComponent._Release: Integer;
begin
Result := -1;
end;
Wozu existiert eigentlich TMyClasses, wo doch erst bei TMyBase/IMyBase die implemtierten Funktionen anfangen?
Und die Klassen TMyInteger, sowie TMyCompare scheinen auch erstmal keine Funktionoalität zu beinhalten.