Open In App
Related Articles

Copy Constructor vs Assignment Operator in C++

Like Article
Save Article
Report issue

Copy constructor and Assignment operator are similar as they are both used to initialize one object using another object. But, there are some basic differences between them:

Copy constructor Assignment operator 
It is called when a new object is created from an existing object, as a copy of the existing objectThis operator is called when an already initialized object is assigned a new value from another existing object. 
It creates a separate memory block for the new object.It does not create a separate memory block or new memory space.
It is an overloaded constructor.It is a bitwise operator. 
C++ compiler implicitly provides a copy constructor, if no copy constructor is defined in the class.A bitwise copy gets created, if the Assignment operator is not overloaded. 


className(const className &obj) {

// body 



className obj1, obj2;

obj2 = obj1;

Consider the following C++ program. 


// CPP Program to demonstrate the use of copy constructor
// and assignment operator
#include <iostream>
#include <stdio.h>
using namespace std;
class Test {
    Test() {}
    Test(const Test& t)
        cout << "Copy constructor called " << endl;
    Test& operator=(const Test& t)
        cout << "Assignment operator called " << endl;
        return *this;
// Driver code
int main()
    Test t1, t2;
    t2 = t1;
    Test t3 = t1;
    return 0;


Assignment operator called 
Copy constructor called 

Explanation: Here, t2 = t1;  calls the assignment operator, same as t2.operator=(t1); and  Test t3 = t1;  calls the copy constructor, same as Test t3(t1);

Must Read: When is a Copy Constructor Called in C++?

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Last Updated : 10 May, 2022
Like Article
Save Article
Share your thoughts in the comments
Similar Reads