Ya hemos visto como definir una clase, y como crear un constructor para ella. Ahora vamos a ver como destruir un objeto creado.



El destructor es una función especial, que tiene el mismo nombre que la clase pero que va precedido del símbolo ~ (ASCII 126). El destructor es único y no tiene argumentos: se puede definir dentro de la clase o fuera de la misma. Si no se ha definido explícitamente un destructor dentro de la clase, C++ proporciona uno. Cuando una variable sale del ámbito en la que se ha declarado, se libera la memoria que ocupa: un objeto llama para este propósito al destructor. Por ejemplo, en el capitulo anterior creamos pt1 y def, son objetos definidos en el bloque de main. Cuando el programa alcanza el final del bloque, dichos objetos salen de ámbito llamando al destructor de la clase, e imprimiendo en la pantalla dos mensajes idénticos (objeto de la clase Punto destruido).

int (main){
  Punto ptl(*, 20, 10);
  Punto def;
  //...
  return 0;
}

Declaración y definición del destructor de la clase. La definición puede hacerse también fuera de la clase.

class Punto{
  public:
    //...
    ~Punto() { cout << "nobjeto Punto destruido"; }
};

Siguiente tema: Clases y Objetos - Control del acceso a los miembros de la clase