Diferencia entre revisiones de «Programación en Ada/Tipos/Punteros a objetos»

Contenido eliminado Contenido añadido
m Enlaces
mSin resumen de edición
Línea 1:
{{navegador|libro=Programación en Ada
|actual=Punteros a objetos
|anterior=Tipos: Registros variantes
|siguiente=Tipos: Punteros a subprogramas
}}
 
Un nombre está ligado a un {{Ada:|OObjetos|oobjeto|bjetos}} desde su declaración hasta que el
flujo del programa deja la unidad que contenía su declaración. Sin
embargo, los punteros o apuntadores (access) proporcionan acceso a otros
Línea 77 ⟶ 81:
El nombre de Unchecked_Deallocation viene del hecho no hay comprobación de que no queden punteros colgantes (''dangling pointers''), es decir que si se ha copiado el puntero en otra variable, después de llamar a Liberar_Vector el puntero copia está apuntando a una dirección de memoria no reservada y los efectos son imprevisibles, puesto que se puede haber reservado y se pude escribir o leer memoria que ya no pertenece a ese objeto.
 
Este sistema es similar al de C++ con new y delete. Un sistema similarde alrecolección de Javabasura desimilar recolecciónal de basuraJava está previsto en el estándar, pero ningún compilador de Ada hasta el momento lo proporciona. Esto es debido a que aunque es un mecanismo más seguro, es menos eficiente y puede ser un problema para los sistemas de tiempo real por su impredictibilidad.
 
En Ada 95 existen métodos de gestión de memoria más seguros que el uso directo de Unchecked_Deallocation basados en los {{Ada:|T|t|ipos controlados}}, algo semejante a lo que se consigue en C++ con constructores y destructores que manejan memoria dinámica.