Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-01-2009
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por rgstuamigo
En el caso de que no lo implementara el destructor, me gustaria que me expliques entonces como se libera internamente esas variables? Ya que puede ser que algunos o muchos String esten llenos eso implica que por cada strings lleno hay un pedazo de memoria de 256 byte(ocupados)
Además de lo que ya te han explicado, creo que no está de más aclararte que un string no es un pedazo de memoria de 256 bytes. En el pascal actual, se distinguen dos tipos de strings: ShortString y long string (que ya mencionó Delphius). Los long strings corresponden al tipo de datos string, mientras que el tipo de datos ShortString corresponde al antiguo string de 256 bytes. También se entiende como short string, a los strings declarados con una longituda máxima:

Código Delphi [-]
var
  S: string[84];

Cualquier short string tiene una longitud máxima y desde su declaración, el compilador asigna tanta memoria como indique tal longitud máxima.

El tipo de datos string, que corresponde al long string, es un tipo de datos dinámico, más semejante a un apuntador o puntero. De inicio, no se asigna memoria alguna y ésta va creciendo o disminuyendo según se modifique el valor de la variable. El tamaño de un string puede ser de hasta 2GB de memoria, mucho más que los antiguos 256 bytes

A diferencia de los punteros, en un string no tenemos que asignar ni liberar memoria explícitamente -el compilador inserta llamadas a funciones que manejan la memoria según se va requiriendo.

// Saludos
Responder Con Cita
  #2  
Antiguo 08-01-2009
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 20
rgstuamigo Va por buen camino
Arrow

Cita:
Al definir esas variables, delphi las crea; Todas ellas tienen un "ambito de vida" donde están definidas. Cuando sales de ese ámbito delphi las destruye.
Si defines un entero en un procedimiento, cuando entras a ese procedimiento delphi se encarga de asignarle la memoria correspondiente a esa variable en la pila de llamadas (variables locales), al igual que hace con los parámetros o la dirección de retorno.
Cuando ese procedimiento finaliza, delphi libera esas posiciones de la pila, liberando la memoria que esas variables ocupaban.
Ok Neftali eso ya yo lo sabia pues precisamente hace ya mucho tiempo hice algunas puebas pues no en Delphi sino en C++Builder donde puedes definir variables donde tu quieras, pero al parecer en delphi es el mismo concepto y lo que estas hablando es el Procedures y no en Contructores.
Cita:
A diferencia de los punteros, en un string no tenemos que asignar ni liberar memoria explícitamente -el compilador inserta llamadas a funciones que manejan la memoria según se va requiriendo.
Ok Roman creo que con eso ya todo fue aclarado.
"En resumen no se debe implementar destructores (EN DELPHI)para clases que tengan
todos su atributos con tipos de datos simples o como lo llamo yo : tipos primitivos."

Muchas gracias a todos por sus respuestas....
Muchos saludos para todos.....


__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 13-01-2009 a las 21:13:17.
Responder Con Cita
  #3  
Antiguo 09-01-2009
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: 19.471
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 rgstuamigo Ver Mensaje
...pero al parecer en delphi es el mismo concepto y lo que estas hablando es el Procedures y no en Contructores.
La idea sigue siendo la misma, lo que cambia es el "ámbito". En ese caso cuando creas el objeto se crean, cuando se destruye el objeto, se liberan.
__________________
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


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 dll romanuel C++ Builder 5 26-02-2008 20:58:52
Duda sobre DFS enrique_84 Varios 2 08-06-2006 11:53:40
constructor y destructor gustavo2 OOP 11 23-04-2004 20:23:20
Una duda sobre ADO PTW Conexión con bases de datos 1 13-04-2004 23:33:14
Sobrecargando destructor marto OOP 4 23-01-2004 20:48:25


La franja horaria es GMT +2. Ahora son las 03:56:15.


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