Eine einfache Implementation einer prozessbezogenen statischen Klassenvariablen mit automatischer Generierung von IDs (warum sollte der Benutzer der Klasse diese generieren müssen...) könnte so aussehen:
Delphi-Quellcode:
{ interface }
type
TFooInstanceID = Integer;
TFoo = class
private
FInstanceID: TFooInstanceID;
public
constructor Create(); virtual;
property InstanceID: TFooInstanceID read FInstanceID;
end;
{ implementation }
var
// Prozessbezogene statische Klassenvariable von TFoo
_FooInstanceID: TFooInstanceID; // = 0
constructor TFoo.Create();
begin
inherited Create();
FInstanceID := InterlockedIncrement(_FooInstanceID);
end;