domingo, 10 de junio de 2018

C++ Destructores


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
 
https://codigogx.blogspot.com/2018/06/c-envoltura-del-preprocesador.htmlhttps://codigogx.blogspot.com/2018/06/c-inicializador-de-miembros.html


No hay comentarios:

Publicar un comentario

C++ El apuntador This

El apuntador This En C++, cada objeto tiene acceso a su propia dirección a través de un puntero o apuntador denominado This. Lo...