Las
sentencias anteriores de declaración de los objetos c2
y c3 funcionarían correctamente aunque
no se haya declarado y definido en la clase C_Cuenta ningún
constructor de copia. Esto es así porque el compilador de
C++ proporciona también un constructor de copia de
oficio, cuando el programador no lo define. El constructor
de copia de oficio se limita a realizar una copia bit a bit
de las variables miembro del objeto original al objeto copia.
En este caso, eso es perfectamente correcto y es todo lo que se
necesita. Pronto se verá algún ejemplo en el que esta
copia bit a bit no da los resultados esperados. En este caso el
programador debe preparar su propio constructor de copia e
incluirlo en la clase como un constructor sobrecargado más.
Además
del ejemplo visto de declaración de un objeto iniciándolo
a partir de otro objeto de la misma clase, hay otros dos casos muy
importantes en los que se utiliza el constructor de copia:
1.
Cuando a una función se le pasan objetos como argumentos
por valor, y
2.
Cuando una función tiene un objeto como valor de retorno.
En
ambos casos hay que crear copias del objeto y para ello se utiliza
el constructor de copia.
|