Supongamos que mi clases de Delphi se ven así:¿Cómo debo liberar una matriz de objetos en un destructor 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.
Para limpiar correctamente, lo que debe ir en el destructor? ¿Es suficiente hacer SetLength(SubInfo,0)
, o necesito abrir y cerrar cada TMySubInfo
? ¿Debo hacer algo?
Sí, estoy llamando a TMySubInfo.Crear en un bucle para crearlos. Una vez creado, sin embargo, no necesito agregar ni eliminar ninguno, por lo que elegí una matriz simple. – Blorgbeard
Además, suponiendo que los libere en un bucle, ¿necesito SetLength (0) también, luego? – Blorgbeard
No es necesario llamar a SetLength. Las matrices dinámicas se limpian automáticamente una vez que el recuento de referencias va a 0. –