The copy constructor plays a special rôle
in pass-by-value parameter passing.
As discussed in Section ,
the semantics of pass-by-value stipulate that the
the values of the actual parameters are used
to initialize the formal parameters when a function is called.
The compiler achieves this by using the copy constructor
to copy the value of the actual parameter to the formal parameter.
The copy constructor plays a similar rôle when a value is returned from a function using the return statement. The copy constructor is used to copy the value from the called function back to the point where the calling function makes use of the result.
Program gives an implementation for the copy
constructor of the Complex class.
The copy constructor initializes the
the member variables real and imag
by calling explicitly their respective copy constructors (line 14).
After the member variables have been initialized,
the body of the constructor runs.
In this case, the body of the copy constructor is empty (line 15).