2010-05-14 22 views
1

Je reçois "E2511 Le paramètre de type" T "doit être un type de classe" sur la troisième classe.Erreur dans ma conception OO Generics. Comment puis-je contourner ce problème?

type TSomeClass=class 
end; 

ParentParentClass<T>=class 
end; 

ParentClass<T: class> = class(ParentParentClass<T>) 
end; 

ChildClass<T: TSomeClass> = class(ParentClass<T>) 
end; 

Je suis en train d'écrire un wrapper Array Generic Lite pour tout type de données (ParentParentClass), mais parce que je suis incapable de idenitifiers de type libre (si T est TObject alors TObject (T) .Gratuit), J'ai créé la deuxième classe, ce qui est utile pour les types de classe, donc je peux libérer les objets.

La troisième classe est l'endroit où j'utilise mon wrapper, mais le compilateur renvoie cette erreur. Comment puis-je le faire compiler?

Répondre