Simple Example Program For Copy Constructor In C++

Constructor Definition

A constructor is a special member function of the class which has the same name as that of the class. It is automatically invoked when we declare/create new objects of the class.

  • A constructor should have the same name as that of the class.
  • It should be a public member.
  • A constructor does not have any return values.
  • A constructor can be overloaded.

Copy Constructor:

A copy constructor is a like a normal parameterized Constructor, but which parameter is the same class object.  Copy constructor uses to initialize an object using another object of the same class. 

Syntax

class class_name {
public:
    class_name(class_name & obj) {
        // obj is same class another object
        // Copy Constructor code 
    }

    //... other Variables & Functions
}

Syntax: Copy Constructor Declaration In Main Function

// In Main Function
class_name object1(params);

Method 1 - Copy Constrcutor
class_name object2(object1); 

Method 2 - Copy Constrcutor
class_name object3 = object1; 

Copy Constructor Example Program

/*  Example Program For Simple Example Program Of Copy Constructor Overloading In C++
    little drops @ thiyagaraaj.com

    Coded By:THIYAGARAAJ MP             */

#include<iostream>
#include<conio.h>

using namespace std;

class Example {
   // Member Variable Declaration
   int a, b;
public:

   //Normal Constructor with Argument

   Example(int x, int y) {
      // Assign Values In Constructor
      a = x;
      b = y;
      cout << "\nIm Constructor";
   }

   //Copy Constructor with Obj Argument

   Example(const Example& obj) {
      // Assign Values In Constructor
      a = obj.a;
      b = obj.b;
      cout << "\nIm Copy Constructor";
   }

   void Display() {
      cout << "\nValues :" << a << "\t" << b;
   }
};

int main() {
   //Normal Constructor Invoked
   Example Object(10, 20);

   //Copy Constructor Invoked - Method 1
   Example Object2(Object);

   //Copy Constructor Invoked - Method 2
   Example Object3 = Object;

   Object.Display();
   Object2.Display();
   Object3.Display();
   // Wait For Output Screen
   getch();
   return 0;
}

Sample Output

Im Constructor
Im Copy Constructor
Im Copy Constructor
Values :10      20
Values :10      20
Values :10      20