Skip to main content

C++ Constructor and Destructor

C++ Constructor

In C++, constructor is a special method which is invoked automatically at the time of object creation. It is used to initialize the data members of new object generally. The constructor in C++ has the same name as class or structure.

There can be two types of constructors in C++.

  • Default constructor
  • Parameterized constructor

C++ Default Constructor

A constructor which has no argument is known as default constructor. It is invoked at the time of creating object.

Let's see the simple example of C++ default Constructor.

  1. #include <iostream>  
  2. using namespace std;  
  3. class Employee  
  4.  {  
  5.    public:  
  6.         Employee()    
  7.         {    
  8.             cout<<"Default Constructor Invoked"<<endl;    
  9.         }    
  10. };  
  11. int main(void)   
  12. {  
  13.     Employee e1; //creating an object of Employee   
  14.     Employee e2;   
  15.     return 0;  
  16. }  

Output:

Default Constructor Invoked 
Default Constructor Invoked

C++ Parameterized Constructor

A constructor which has parameters is called parameterized constructor. It is used to provide different values to distinct objects.

Let's see the simple example of C++ Parameterized Constructor.

#include <iostream>
using namespace std;
class Employee {
   public:
       int id;//data member (also instance variable)    
       string name;//data member(also instance variable)
       float salary;
       Employee(int i, string n, float s)  
        {  
            id = i;  
            name = n;  
            salary = s;
        }  
       void display()  
        {  
            cout<<id<<"  "<<name<<"  "<<salary<<endl;  
        }  
};
int main(void) {
    Employee e1 =Employee(101, "Sonoo", 890000); //creating an object of Employee 
    Employee e2=Employee(102, "Nakul", 59000); 
    e1.display();  
    e2.display();  
    return 0;
}

Output:

101  Sonoo  890000
102  Nakul  59000

C++ 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++ Constructor and Destructor Example

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

  1. #include <iostream>  
  2. using namespace std;  
  3. class Employee  
  4.  {  
  5.    public:  
  6.         Employee()    
  7.         {    
  8.             cout<<"Constructor Invoked"<<endl;    
  9.         }    
  10.         ~Employee()    
  11.         {    
  12.             cout<<"Destructor Invoked"<<endl;    
  13.         }  
  14. };  
  15. int main(void)   
  16. {  
  17.     Employee e1; //creating an object of Employee   
  18.     Employee e2; //creating an object of Employee  
  19.     return 0;  
  20. }  

Output:

Constructor Invoked
Constructor Invoked
Destructor Invoked
Destructor Invoked



Anurag Rana Educator CSE/IT

Comments