Destructor in C plus plus

A destructor works opposite to constructor; it destructs the objects of classes. It can be defined only once in a class. Like constructors, it is invoked automatically.

A destructor is defined like constructor. It must have same name as class. But it is prefixed with a tilde sign (~). C plus plus destructer is used very often then constructor.

Note: C++ destructor cannot have parameters. Moreover, modifiers can’t be applied on destructors.

C++ Constructor and Destructor Example

Let’s see an example of constructor and destructor in C++ which is called automatically.

 
  • #include <iostream>  
  • using namespace std;  
  • class Employee  
  •  {  
  •    public:  
  •         Employee()    
  •         {    
  •             cout<<“Constructor Invoked”<<endl;    
  •         }    
  •         ~Employee()    
  •         {    
  •             cout<<“Destructor Invoked”<<endl;    
  •         }  
  • };  
  • int main(void)   
  • {  
  •     Employee e1; //creating an object of Employee   
  •     Employee e2; //creating an object of Employee  
  •     return 0;  
  • }  

Output:

Constructor Invoked
Constructor Invoked
Destructor Invoked
Destructor Invoked

C plus plus Destructor

A destructor works opposite to constructor; it destructs the objects of classes. It can be defined only once in a class. Like constructors, it is invoked automatically.

A destructor is defined like constructor. It must have same name as class. But it is prefixed with a tilde sign (~).

Note: C++ destructor cannot have parameters. Moreover, modifiers can’t be applied on destructors.

C plus plus Constructor and Destructor Example

Let’s see an example of constructor and destructor in C++ which is called automatically.

 
  • #include <iostream>  
  • using namespace std;  
  • class Employee  
  •  {  
  •    public:  
  •         Employee()    
  •         {    
  •             cout<<“Constructor Invoked”<<endl;    
  •         }    
  •         ~Employee()    
  •         {    
  •             cout<<“Destructor Invoked”<<endl;    
  •         }  
  • };  
  • int main(void)   
  • {  
  •     Employee e1; //creating an object of Employee   
  •     Employee e2; //creating an object of Employee  
  •     return 0;  
  • }  

Output:

Constructor Invoked
Constructor Invoked
Destructor Invoked
Destructor Invoked