viernes, 22 de enero de 2016

Constructores y destructores de una clase

Constructores de una clase:
Cuando se construye un objeto es necesario inicializar sus variables con valores coherentes, imaginemos un objeto de la clase llamada Persona cuyo atributo color de pelo al nacer sea verde, un estado incorrecto tras construir el objeto persona. La solución en los lenguajes orientados a objetos es emplear los constructores. Un constructor es un método perteneciente a la clase que posee unas características especiales:
-          Se llama igual que la clase.
-          No devuelve nada, ni siquiera void
-          Pueden existir varios, pero siguiendo las reglas de la sobrecarga de funciones
-          De entre los que existan, tan sólo uno se ejecutará al crear un objeto de la clase

Para definir los constructores se emplea la siguiente sintaxis:
         [modifVisibilidad] nombreConstructor (listaParámetros) [throws listaExcepciones]
         {
         }

Para modifVisibilidad se aplica las mismas normas que para atributos y métodos:
-          public: indica que es un método accesible a través de una instancia del objeto.
-          private: indica que a través de una instancia no es accesible el método. Al heredar el método se convierte en inaccesible.
-          protected: indica que a través de una instancia no es accesible el método. Al heredar si se puede usar desde la clase derivada.



Destructor de una clase:
Es un método de una clase que se llama justo antes de una instancia de esa clase y se elimina de la memoria. No todos los lenguajes de programación orientados a objetos suelen tener un destructor.
La contrapartida de un destructor es un constructor que se ejecuta cuando se crea el objeto, se instancia y se lo inicializa.

Una clase sólo tiene una función destructor que, no tiene argumentos y no devuelve ningún tipo. Un destructor realiza la operación opuesta de un constructor, limpiando el almacenamiento asignado a los objetos cuando se crean. C++ permite sólo un destructor por clase.

No hay comentarios:

Publicar un comentario