Skip to content
Related Articles

Related Articles

Save Article
Improve Article
Save Article
Like Article

Copy constructor vs assignment operator in C++

  • Difficulty Level : Medium
  • Last Updated : 08 Jul, 2019

Difficulty Level: Rookie

Consider the following C++ program.

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

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

Copy constructor is called when a new object is created from an existing object, as a copy of the existing object (see this G-Fact). And assignment operator is called when an already initialized object is assigned a new value from another existing object.

t2 = t1;  // calls assignment operator, same as "t2.operator=(t1);"
Test t3 = t1;  // calls copy constructor, same as "Test t3(t1);"


Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.

My Personal Notes arrow_drop_up
Recommended Articles
Page :