¿Qué
hubiera pasado si en la clase C_Cuenta no se hubiera
definido ningún constructor? Pues en este caso
concreto, no hubiera pasado nada, o al menos nada catastrófico.
El compilador de C++ habría creado un constructor de
oficio, sin argumentos. ¿Qué puede hacer un
constructor sin argumentos? Pues lo más razonable
que puede hacer es inicializar todas las variables miembro a cero.
Quizás esto es muy razonable para el Saldo,
aunque quizás no tanto para la variable Interes.
Así
pues, se llamará en estos apuntes constructor por defecto
a un constructor que no tiene argumentos o que si los tiene, se
han definido con valores por defecto. Se llamará constructor
de oficio al constructor por defecto que define
automáticamente el compilador si el usuario no define ningún
constructor. Ambos conceptos no son equivalentes, pues si bien todo
constructor de oficio es constructor por defecto
(ya que no tiene argumentos), lo contrario no es cierto, pues el
programador puede definir constructores por defecto
que obviamente no son de oficio.
Un
punto importante es que el compilador sólo crea un constructor
de oficio en el caso de que el programador no haya definido
ningún constructor. En el caso de que el usuario
sólo haya definido un constructor con argumentos
y se necesite un constructor por defecto para crear
por ejemplo un vector de objetos, el compilador no
crea este constructor por defecto sino que da un mensaje
de error.
Los
constructores de oficio son cómodos para el
programador (no tiene que programarlos) y en muchos casos también
correctos y suficientes. Sin embargo, ya se verá en un próximo
apartado que en ocasiones conducen a resultados incorrectos e incluso
a errores fatales.
|