constructor which creates an object by initializing it with an object of the same class

OOP in C++

Posted on

For the students of FYBSc (IT), SYBSc (CS), SYBCA


The copy constructor is a constructor which creates an object by initializing it with an object of the same class, which has been created previously. The copy constructor is used to:

  • Initialize one object from another of the same type.
  • Copy an object to pass it as an argument to a function.
  • Copy an object to return it from a function.

If a copy constructor is not defined in a class, the compiler itself defines one. If the class has pointer variables and has some dynamic memory allocations, then it is a must to have a copy constructor. The most common form of copy constructor is shown here:

classname (const classname &obj){   // body of constructor}

Here, obj is a reference to an object that is being used to initialize another object.





int getLength(void);

Line(int len );             // simple constructor

Line(constLine&obj);  // copy constructor

~Line();                     // destructor




// Member functions definitions including constructor

Line::Line(int len)


cout <<“Normal constructor allocating ptr”<< endl;

// allocate memory for the pointer;

ptr =newint;

*ptr = len;




cout <<“Copy constructor allocating ptr.”<< endl;

ptr =newint;

*ptr =*obj.ptr;// copy the value




cout <<“Freeing memory!”<< endl;

delete ptr;






void display(Line obj)


cout <<“Length of line : “<< obj.getLength()<<endl;


// Main function for the program

void main()

{   Line line(10);


When the above code is compiled and executed, it produces the following result:

Normal constructor allocating ptr

Copy constructor allocating ptr.

Length of line : 10

Freeing memory!

Freeing memory!


Posted By-: Vissicomp Technology Pvt. Ltd.

Website -: