Delphi - cuando inherited?

 
Vista:

cuando inherited?

Publicado por pereda (1 intervención) el 28/01/2004 10:01:49
Hola grupo. Cuales son las normas para poner inherited Destroy y inherited Create en el destructor/constructor de un objeto?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:cuando inherited?

Publicado por ery (42 intervenciones) el 28/01/2004 13:20:58
Constructor Tx.Create;
begin
inherited Create; // Creas la clase padre
SetLength(Arreglo, 100); // Inicializa las variables, etc propias
end;

Destructor Tx.Destroy;
SetLength(Arreglo,0); //Liberas lo propio arreglo dinamicos. etc.
inherited destroy; // Y luego la clase padre
End;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cuando inherited?

Publicado por perea (1 intervención) el 28/01/2004 16:42:57
O sea.... que hay que no usar el inherited cuando tu clase descienda directamente de TObject o una clase que no tenga un destructor/constructor definido?.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cuando inherited?

Publicado por ery (42 intervenciones) el 28/01/2004 17:07:02
Yo no se a Ti. Pero a mi DELPHI a veces me ha dado algunas sorpresas.

En mi caso siempre utilizo el inherited Create y el destroy
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cuando inherited?

Publicado por mamcx (533 intervenciones) el 28/01/2004 21:31:35
El asunto es asi:

No pones nada: Sobreescribes por completo el metodo (o sea, no se hace la destruccion/construccion o culquier otro metodo del padre)= Solo en casos muy contados y casi nunca en destruy/create

inherited; se usa cuando hay descendencia directa (=un solo constructor/destructor en la clase) y no se necesita pasar una referencia, casi todos los controles no visuales que esten por debajo de TComponent

inherited Method1
inherited Method2

Si es que hay mas de uno... (muuuy raro, pero pasa sobre todo si el create esta sobrecargado=overload)

inherited Metodo(Param); cuando se necesita pasar referencia, por ejemplo, todo control visual

Por regla general
inherited Create debe ser la primera linea del metodo
Puede ser diferente, pero casi nunca es necesario

inherited Destroy debe ser la ultima en el metodo
Bien peligroso no hacerlo asi...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar