Afficher : Delphi
C++
Préférences d'affichage
Variable classe dans les génériques
De RAD Studio
Remonter à Génériques - Index
La variable classe définie dans un type générique est instanciée dans chaque type instancié identifié par les paramètres de type.
Le code suivant montre que TFoo<Integer>.FCount et TFoo<String>.FCount ne sont instanciés qu'une seule fois, et que ce sont deux variables différentes.
{$APPTYPE CONSOLE} type TFoo<T> = class class var FCount: Integer; constructor Create; end; constructor TFoo<T>.Create; begin inherited Create; Inc(FCount); end; procedure Test; FI: TFoo<Integer>; begin FI := TFoo<Integer>.Create; FI.Free; end; var FI: TFoo<Integer>; FS: TFoo<String>; begin FI := TFoo<Integer>.Create; FI.Free; FS := TFoo<String>.Create; FS.Free; Test; Writeln(TFoo<Integer>.FCount); // renvoie 2 Writeln(TFoo<String>.FCount); // renvoie 1 end;