When a copy constructor is called?
All of the mentioned
When an object of the class is passed by value to a function
When an object of the class is returned by value
When an object is constructed based on another object of the same class
(A) All of the mentioned
Explanation:
Copy constructor is called in all the above-mentioned criteria because in all the above cases we are somehow trying to copy one object into another.