Destructores en C++

¿Qué es un destructor?  
Destructor es una función miembro de instancia que se invoca automáticamente cada vez que se va a destruir un objeto. Es decir, un destructor es la última función que se llamará antes de que se destruya un objeto.

  • Destructor es también una función miembro especial como constructor. Destructor destruye los objetos de clase creados por el constructor. 
  • Destructor tiene el mismo nombre que el nombre de su clase precedido por un símbolo de mosaico (~).
  • No es posible definir más de un destructor. 
  • El destructor es solo una forma de destruir el objeto creado por el constructor. Por lo tanto, destructor no puede sobrecargarse.
  • Destructor no requiere ningún argumento ni devuelve ningún valor.
  • Se llama automáticamente cuando el objeto sale del alcance. 
  • El destructor libera el espacio de memoria ocupado por los objetos creados por el constructor.
  • En destructor, los objetos se destruyen al revés de la creación de un objeto.
     

El asunto debe tenerse en cuenta aquí, si el objeto se crea usando new o el constructor usa new para asignar memoria que reside en la memoria del montón o en la tienda libre, el destructor debe usar delete para liberar la memoria.   

C++

// Example:
 
#include<iostream>
using namespace std;
 
class Test
{
   public:
        Test()
       {
              cout<<"\n Constructor executed";
       }   
 
       ~Test()
          {
              cout<<"\n Destructor executed";
          }
};
main()
{
     Test t;
       
    return 0;
}

C++

// Example:
 
#include<iostream>
using namespace std;
class Test
{
    public:
        Test()
        {
            cout<<"\n Constructor executed";
        }
         
        ~Test()
        {
            cout<<"\n Destructor executed";
        }
};
 
main()
{
    Test t,t1,t2,t3;
    return 0;
}

C++

// Example:
 
#include<iostream>
using namespace std;
int count=0;
class Test
{
    public:
        Test()
        {
            count++;
            cout<<"\n No. of Object created:\t"<<count;
        }
         
        ~Test()
        {
            cout<<"\n No. of Object destroyed:\t"<<count;
            --count;
        }
};
 
main()
{
    Test t,t1,t2,t3;
    return 0;
}

CPP

class String {
private:
    char* s;
    int size;
 
public:
    String(char*); // constructor
    ~String(); // destructor
};
 
String::String(char* c)
{
    size = strlen(c);
    s = new char[size + 1];
    strcpy(s, c);
}
String::~String() { delete[] s; }

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *