You are on page 1of 11

C++ Constructor

Definition
• In C++, constructor is a special method which is invoked
automatically at the time of object creation.

• It constructs the values i.e. provides data for the object


Hence it is known as constructors.

• The constructor in C++ has the same name as class.

• Constructor does not have a return value, hence they do not


have a return type.
There can be two types of constructors in C++.

• Default constructor

• Parameterized constructor

• Copy Constructor
Default Constructor

• A constructor which has no argument is known


as default constructor.

• It is invoked at the time of creating object.

Note: Attend class for examples


Parameterized Constructor
• A constructor which has parameters is called
parameterized constructor.

• It is used to provide different values to distinct


objects.

Note: Attend class for examples


Copy Constructor
• A copy constructor initializes an object using another object of the same
class.

• A copy constructor has the following general function prototype:


ClassName (const ClassName &old_obj);

• Copy constructor is used to initialize the members of a newly created


object by copying the members of an already existing object.

• Copy constructor takes a reference to an object of the same class as an


argument.

Sample(Sample &t)
{
id=t.id;
}
• The process of initializing members of an object through a copy
constructor is known as copy initialization.

• It is also called member-wise initialization because the copy


constructor initializes one object with the existing object, both
belonging to the same class on a member by member copy basis.

• The copy constructor can be defined explicitly by the programmer.


If the programmer does not define the copy constructor, the
compiler does it for us.
Destructors
• Destructor is an instance member function
which is invoked automatically whenever an
object is going to be destroyed.

• Meaning, a destructor is the last function that


is going to be called before an object is
destroyed.
• Destructor is also a special member function like
constructor.

• Destructor destroys the class objects created by constructor.

• Destructor has the same name as their class name preceded


by a tilde (~) symbol.

• It is not possible to define more than one destructor.

• The destructor is only one way to destroy the object created


by constructor. Hence destructor can-not be overloaded.
• Destructor neither requires any argument nor
returns any value.

• It is automatically called when object goes out of


scope.

• Destructor release memory space occupied by the


objects created by constructor.

• In destructor, objects are destroyed in the reverse of


an object creation.
• Codes are discussed in class, refer from there.

You might also like