Class Destructor

 

Class Destructor as it's name suggests is a function which deletes an object.

 

A destructor function is called when
(1) Function ends
(2) Program ends
(3) Block consisting of local variables ends
(4) Delete operator is called

 

Destructors have same name as the class only with a tilde (~)

Destructors do not allow parameters and only one destructor in a class.

 

Example:

 

#include <iostream>
#include <string.h>

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);
  std::cout<<"constructor called\n";
}

string::~string( )
{
  std::cout<<"desctructor called";
  delete [ ]s;
}

int main()
{
    string str("name");
}