Constructor
Constructors are special member functions of a class which is used to initialize the object in desired way. Constructors has the same name as that of class. There could be multiple constructors defined in a class which could be selected based on invoking conditions.
Types of constructor
- Default constructor – Any constructor without argument is called default constructor.
- Parameterized constructor – Any constructor in which argument can be passed is called Parameterized constructor.
- Copy constructor – This is a special kind of constructor which uses an existing object to create a new object.
Destructor
Destructor is a special member function of a class which is used to delete the object. Destructor also has the same name as that of class prefixed with “~” sign. In any class, one could define only one destructor. Destructor doesn’t take any argument.
Constructors vs Destructors
Let’s have a look into the differences between constructors and destructors.
Constructors | Destructors |
---|---|
Used to initialize the object. | Used to delete the object. |
Has same name as class name. | Has name starting with “~” followed by class name. |
It can take zero or more arguments. | It can’t take any arguments. |
A class can have one or more constructors. | A class can have only one destructor. |
Constructor follows class hierarchy from base to derived. | Destructor follows reverse hierarchy from derived to base. |
Constructors can be overloaded. | Destructors can’t be overloaded. |
Constructor can’t be virtual. | Destructors can be virtual. |