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.




#include<iostream> 
#include<stdio.h> 
  
using namespace std; 
  
class Test 
    public
    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; 
    getchar(); 
    return 0; 

Output:
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);"

References:
http://en.wikipedia.org/wiki/Copy_constructor

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 :