Destructores (C++)

Las funciones de “Destructor” es lo contrario de las funciones de constructor.Se llama cuando se destruyen objetos (desasignado).Señala una función como el destructor de una clase delante del nombre de clase con una tilde (~).Por ejemplo, el destructor de la clase String se declara: ~String().

En una compilación /clr, el destructor tiene un rol especial en recursos administrados y no administrados liberar.Para obtener más información, consulte Destructores y Finalizadores en Visual C++.

Ejemplo

Destructor es de uso general “limpia” cuando un objeto ya no es necesario.considere la siguiente declaración de una clase de String :

// spec1_destructors.cpp
#include <string.h>

class String {
public:
   String( char *ch );  // Declare constructor
   ~String();           //  and destructor.
private:
   char    *_text;
   size_t  sizeOfText;
};

// Define the constructor.
String::String( char *ch ) {
   sizeOfText = strlen( ch ) + 1;

   // Dynamically allocate the correct amount of memory.
   _text = new char[ sizeOfText ];

   // If the allocation succeeds, copy the initialization string.
   if( _text )
      strcpy_s( _text, sizeOfText, ch );
}

// Define the destructor.
String::~String() {
   // Deallocate the memory that was previously reserved
   //  for this string.
   if (_text)
      delete[] _text;
}

int main() {
   String str("The piper in the glen...");
}

En el ejemplo anterior, el destructor String::~String utiliza el operador de delete para desasignar el espacio asignado dinámicamente para el almacenamiento de texto.

Vea también

Referencia

El miembro especial funciona (C++)