C++ DESTRUCTORES
Un destructor, es un tipo de función especial que se complementa en
cierto sentido a los constructores. Su misión es realizar las tareas de mantenimiento de terminación
cuando un objeto es destruido y es llamado en forma implícita cuando esto
ocurre.
Un destructor no recibe parámetros y no
devuelve un valor. Tampoco puede especificar un tipo de valor de retorno; ni
siquiera void. Una clase sólo puede tener un destructor, no se permite la
sobrecarga de destructores y éstos deben ser public.
Todas las clases tienen un destructor, si no se
especifica uno, entonces el compilador crea un destructor por defecto. Este
destructor por defecto se crea vacío, es decir que no lleva ningún tipo de
instrucción. Más adelante, al especificar nuestro destructor, le podremos
agregar algunas instrucciones.
El nombre de un destructor es exactamente el mismo de la
clase, precedido de un tilde (~)
Ejemplo:
class MiEjemplo{
public:
MiEjemplo();
//Constructor
~MiEjemplo(); //Destructor
};
A continuación se
muestra un ejemplo en donde, al llamar al constructor y este al terminar su
tarea, automáticamente llama a su destructor.
#include<iostream>
using
std::cout;
using
std::endl;
class
Ejemplo{
public:
Ejemplo(){
cout << "Se ejecuta el Constructor" << endl;
}
~Ejemplo(){
cout << "Se ejecuta el Destructor" << endl;
}
};
int
main(){
Ejemplo imprimir;
return
0;
}
Al compilar y ejecutar este código, esto
es lo que muestra:
El orden
en el que ocurren estas llamadas a funciones depende del orden en el que la
ejecución entra y sale de los alcances en los que se instancian los objetos.
Por lo general, las llamadas a los destructores se realizan en orden inverso a
las llamadas correspondientes a los constructores.
Los
destructores correspondientes se llaman cuando termina la función main.
Esto es
todo por ahora.
Saludos
Gustavo J. Cerda Nilo - Junio 2018
No hay comentarios:
Publicar un comentario