classTest { public: Test() {} Test(const Test &t) { cout<<"Copy constructor called "<<endl; } Test& operator = (const Test &t) { cout<<"Assignment operator called "<<endl; } };
intmain() { Test t1, t2; t2 = t1; // calls assignment operator, same as "t2.operator=(t1);" Test t3 = t1; // calls copy constructor, same as "Test t3(t1);" return0; }
output:
1 2
Assignment operator called Copyconstructorcalled
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.