Hi,
ich beschäftige mich gerade etwas näher mit Generics und stehe vor einem Problem. Folgende Testklasse:
Delphi-Quellcode:
TRecObj<T> =
class
type
PRec = ^TRec;
TRec =
record
ID: integer;
Data: T;
end;
private
FRec: PRec;
public
constructor Create(ID: integer; Data: T);
destructor Destroy;
reintroduce;
end;
constructor TRecObj<T>.Create(ID: integer; Data: T);
begin
inherited Create;
New(FRec);
FRec.ID := ID;
FRec.Data := Data;
// schmeißt AV
end;
destructor TRecObj<T>.Destroy;
begin
Dispose(FRec);
inherited Destroy;
end;
myObj := TRecObj<
string>.Create(-17, '
Hallo');
Das Record mag in diesem Beispiel nicht viel Sinn machen; ich möchte aber ein eigenes Listenobjekt programmieren, bei dem jedes Element aus so einem Record besteht.
Wenn ich mir jetzt ein neues TRecObj erstelle, bekomm ich eine
AV (Read of address FFFFFFFB) bei der Zuweisung von Data. Benutze ich hier die Generics falsch? Warum funktioniert das so nicht?
Danke, Björn