As like Constructors are called when new object is created, Destructors are also called when an object is to be deleted.
}
·         The Destructor is also initialised as like the constructor by the name of the class. The only difference between them is that Destructor used a tilde (~) prefix, which is not in the case for Constructor.
·         Destructor does not use any parameters, as it is only used to destroy an object.
·         Destructors can’t return a value.
·         They are used to save resources by closing by closing the files which will release the memory used by some out of scope objects.
·         Defining a destructor is not mandatory.
·         Destructors can’t be overloaded.
·         One Destructor is used for each class.
·         So in the header file of our class we will declare what the class will do.
#ifndef NEWCLASS_H_
#define NEWCLASS_H_
class NewClass {
public:
      NewClass();
      ~NewClass();
};
#endif /* NEWCLASS_H_ */
·         So we declared the destructor in the header file, now we can write the implementation in the source file i.e. NewClass.cpp in my case.
#include "NewClass.h"
#include <iostream>   // iostream header is included to use cout
using namespace std;   //namespace standard library is also included
NewClass::NewClass() {
      cout<<"Object is created and so the Constructor is called"<<endl;
}
NewClass::~NewClass() {
      cout<<"Object is destroyed and so the Destructor is called"<<endl;
}
·         In case of main function, we just need to create an object to complete this example.
·         Thus when the object is created, Constructor will be called and at the time of its deletion, Destructor will be called after the completion of program’s execution.
#include <iostream>
#include "NewClass.h"   // Include our classes to the main function
using namespace std;
int main()
{
      NewClass NewObject;  //New Object is created 
}