I know of the following situations in c++ where the copy constructor would be invoked:
when an existing object is assigned an object of it own class
There are 3 situations in which the copy constructor is called: When we make copy of an object. When we pass an object as an argument by value to a method. When we return an object from a method by value.
these are the only situations....i think...