mes classes Delphi Supposons ressemblent à ceci:Comment libérer un tableau d'objets dans un destructeur Delphi 7?
interface
type
TMySubInfo = class
public
Name : string;
Date : TDateTime;
Age : Integer;
end;
TMyInfo = class
public
Name : string;
SubInfo : array of TMySubInfo;
destructor Destroy; override;
end;
implementation
destructor TMyInfo.Destroy;
begin
// hmmm..
end;
end.
Pour bien nettoyer, ce qui devrait aller dans le destructor? Est-il suffisant de faire SetLength(SubInfo,0)
, ou dois-je faire une boucle et libérer chaque TMySubInfo
? Ai-je besoin de faire quoi que ce soit?
Oui, j'appelle TMySubInfo.Create dans une boucle pour les créer. Une fois créé, cependant, je n'ai pas besoin d'ajouter ou de supprimer un - c'est pourquoi j'ai choisi un simple tableau. – Blorgbeard
Aussi, en supposant que je les libère dans une boucle, ai-je besoin de SetLength (0) aussi, après? – Blorgbeard
Il n'est pas nécessaire d'appeler SetLength. Les tableaux dynamiques sont automatiquement nettoyés dès que le nombre de références est passé à 0. –