Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-08-2014
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Poder: 11
BDWONG Va por buen camino
Uso adecuado del destructor

Buenas tengo duda de como usar correctamente el destructor en object pascal(dephi) porque he visto que cuando se instancia el objeto de alguna clase en algunos ejemplos usan el objeto y no la liberan pero en otros casos si lo hacen.

Asi que mi pregunto todos los objetos se tienen que liberar o solo en algunas ocasiones esto me parece confuso ya que si yo creo una clase de tipo "auto" la instancio y creo el objeto, accedo a todos sus metodos etc y ya no lo necesito lo tengo que liberar o el mismo delphi lo liberar al momento de concluir el programa

espero sus respuestas saludos...
Responder Con Cita
  #2  
Antiguo 04-08-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola BDWONG.

Basta una rápida búsqueda en los foros:Y figuran más enlaces al pié de esta página...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 04-08-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por BDWONG Ver Mensaje
...me pregunto todos los objetos se tienen que liberar o solo en algunas ocasiones esto me parece confuso ya que si yo creo una clase de tipo "auto" la instancio y creo el objeto, accedo a todos sus metodos etc y ya no lo necesito lo tengo que liberar o el mismo delphi lo liberar al momento de concluir el programa
Todos los objetos deben liberarse una vez que ya no se utilizan.
Los que crees tú deberías encargarte de liberarlos tú y los que cada elemento cree debería encargarse él de liberarlos (para ser organizado).
Hay muchas variantes, pero la idea principal es siempre la misma.

Tal vez si comentaras algún ejemplo concreto en el que tengas dudas del funcionamiento podemos comentarlo.

Al acabar/cerrar el programa, la memoria se libera, así que si no has liberado algo, esa memoria se liberará al finalizar, pero no es correcto ir dejando cosas "sin destruir" y esperar a que el programa termine para que ese memoria quede disponible.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 05-08-2014
Avatar de BDWONG
BDWONG BDWONG is offline
Miembro
NULL
 
Registrado: nov 2013
Posts: 113
Poder: 11
BDWONG Va por buen camino
Gracias

Bueno gracias por su ayuda he resulto varias dudas, por ultimo estuve leyendo que en un programa secuencial que solo maneja
datos primitivos no era necesario destruir el objeto.

Pero estaría mal si lo hiciera un ejemplo:
Código Delphi [-]
TYPE
  Ttrasporte=class(TObject)
    Tipo_Trasporte:string;
    constructor create(tipo:string);
    procedure Arrancar;
    procedure Frenar;

  end;

constructor Ttrasporte.create(tipo: string);
begin
    self.Tipo_Trasporte:=tipo;
end;

procedure Ttrasporte.Arrancar;
begin
    Writeln('EL ',self.Tipo_Trasporte,' arranco');
end;

procedure Ttrasporte.Frenar;
begin
    Writeln('EL ',self.Tipo_Trasporte,' freno');
end;

var
auto:Ttrasporte;
begin
  try
  auto:=Ttrasporte.create('Mustang');
  auto.Arrancar;
  auto.Frenar;
  finally
    FreeAndNil(auto);
  end;
  readln;
end.
Gracias saludos...
Responder Con Cita
  #5  
Antiguo 05-08-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por BDWONG Ver Mensaje
estuve leyendo que en un programa secuencial que solo maneja
datos primitivos no era necesario destruir el objeto.
No se a qué te refieres con "datos primitivos".
En cuanto al ejemplo, tal y como está sería lo correcto.

Tú creas el objeto auto de tipo Ttrasporte, por lo tanto tú eres el encargado de destruirlo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Duda sobre el Destructor rgstuamigo OOP 14 09-01-2009 10:41:27
El respaldo más adecuado... AMINOA2R Firebird e Interbase 2 20-05-2005 00:59:01
Uso adecuado de Rollback rochi Firebird e Interbase 4 20-11-2004 20:10:55
constructor y destructor gustavo2 OOP 11 23-04-2004 20:23:20
Sobrecargando destructor marto OOP 4 23-01-2004 20:48:25


La franja horaria es GMT +2. Ahora son las 02:39:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi