Du könntest ein weiteres Interface einführen:
Delphi-Quellcode:
ICompareRef = interface
function GetCookie:Integer;
end;
Alle Klassen sollten dann dieses Interface implementieren:
Delphi-Quellcode:
TA= class(TInterfacedObject,iA, ICompareRef)
private
FCookie : Integer;
protected
function GetCookie:Integer;
public
constructor Create;
procedure A;
end;
function TA.GetCookie:Integer;
begin
Result := FCookie;
end;
constructor TA.Create;
begin
// GlobalCookieCounter ist eine globale Variable
// sie beim Erzeugen eines Objekte um 1 hochgezählt
FCookie := InterlockedIncrement(GlobalCookieCounter);
end;
Und so wird's benutzt
Delphi-Quellcode:
if (fA
as ICompareRef).GetCookie=(
fB as ICompareRef).GetCookie
then
ShowMessage('
die Dinger sind gleich');