sábado, 9 de enero de 2016

Invocación de constructores y destructores

Los constructores y los destructores son llamados automáticamente. El orden en el que ocurren estas llamadas a función depende del orden en el que la ejecución introduce y rebasa el alcance en el que estos objetos se crean. Por lo general, las llamadas a un destructor se hacen en orden inverso de las llamadas a un constructor. Sin embargo, las clases de almacenamiento de los objetos pueden alterar el orden en el que se llama a los destructores.
Los constructores son llamados por objetos definidos con alcance global, antes de que cualquier otra función (incluso main) en este archivo comience su ejecución (aunque el orden de la ejecución de constructores de objetos globales entre archivos no está garantizado). Los destructores correspondientes son llamados cuando termina el main o cuando se llama a la función exit. Los destructores no son llamados por objetos globales, si el programa termina con una llamada a una función exit o abort.
Se llama al constructor de un objeto local automático cuando la ejecución alcanza el punto en donde se definen los objetos. Los destructores correspondientes se llaman cuando los objetos e salen de alcance (es decir cuando se abandona el bloque en el que se definieron). Los constructores y los destructores de objetos automáticos se llaman cada vez que los objetos entran o salen de alcance. Los destructores de objetos automáticos no se llaman si el programa termina con una llamada a las funciones exit o abort.

Se llama al constructor para un objeto local estático solamente una vez cuando la ejecución alcanza por primera vez el punto donde el objeto está definido. Los destructores correspondientes se llaman cuando termina main cuando se llama a la función exit. No se llama a los destructores para objetos estáticos, si el programa termina con una llamada a una función abort.

Ejemplo de constructores por omisión






Ejemplo de constructor con parámetros













No hay comentarios:

Publicar un comentario