Copy constructor

Why object is being passed by call by reference?
Wht happens when passed by value?

If we pass the object by value then a new copy of the object will be created and changes will occur in that new copy. Moreover, the new object will also take some space; this will make our program space inefficient. And when passed by reference, the same object will be passed and no new copy of it will be created, so it won’t take any new space. Hence, to make our program space efficient the object is passed by reference instead of by value.