Skip to content
Related Articles

Related Articles

Difference Between Constructor and Destructor in C++
  • Difficulty Level : Hard
  • Last Updated : 22 Sep, 2020

Constructor: 
A constructor is a member function of a class that has the same name as the class name. It helps to initialize the object of a class. It can either accept the arguments or not. It is used to allocate the memory to an object of the class. It is called whenever an instance of the class is created. It can be defined manually with arguments or without arguments. There can be many constructors in class. It can be overloaded but it can not be inherited or virtual. There is a concept of copy constructor which is used to initialize a object from another object. 

Syntax: 
 

  ClassName()
   {
     //Constructor's Body 
   } 

Destructor: 
Like constructor, deconstructor is also a member function of a class that has the same name as the class name preceded by a tilde(~) operator. It helps to deallocate the memory of an object. It is called while object of the class is freed or deleted. In a class, there is always a single destructor without any parameters so it can’t be oveloaded. It is always called in the reverse order of the constructor. if a class is inherited by another class and both the classes have a destructor then the destructor of the child class is called first, followed by the destructor of the parent or base class. 

Syntax: 
 

  ~ClassName()
   { 
   }

Note: If we do not specify any access modifiers for the members inside the class then by default the access modifier for the members will be Private. 



Example/Implementation of Constructor and Destructor: 
 

class Z
{
public:
    // constructor
    Z()
    {
        cout<<"Constructor called"<<endl;
    }

    // destructor
    ~Z()
    {
        cout<<"Destructor called"<<endl;
    }
};

int main()
{
    Z z1;   // Constructor Called
    int a = 1;
    if(a==1)
    {
        Z z2;  // Constructor Called
    }  // Destructor Called for z2
} //  Destructor called for z1 

Output: 
 

Constructor called
Constructor called
Destructor called
Destructor called 

Difference between Constructor and Destructor in C++ : 

 

S.NO Constructor Destructor
1. Constructor helps to initialize the object of a class. Whereas destructor is used to destroy the instances.
2. It is declared as Classname( arguments if any ){Constructor’s Body }. Whereas it is declared as ~ ClassName( no arguments ){ };.
3. Constructor can either accept an arguments or not. While it can’t have any arguments.
4. A constructor is called when an instance or object of a class is created. It is called while object of the class is freed or deleted.
5. Constructor is used to allocate the memory to an instance or object. While it is used to deallocate the memory of an object of a class.
6. Constructor can be overloaded. While it can’t be overloaded.
7. The constructor’s name is same as the class name. Here, it’s name is also same as the class name preceded by tiled (~) operator.
8. In a class, there can be multiple constructors. While in a class, there is always a single destructor.
9. There is a concept of copy constructor which is used to initialize a object from another object. While here, there is no copy constructor concept.

 

Attention reader! Don’t stop learning now. Get hold of all the important C++ Foundation and STL concepts with the C++ Foundation and STL courses at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up
Recommended Articles
Page :