BUSCAR
INDICE
INDICE DEL TEMA
OBJETIVOS
TEORIA
PALABRAS RESERVADAS
GLOSARIO
EJERCICIOS
RESUELTOS
AUTOEVALUACION
PROPUESTOS
ERRORES
ESTADISTICAS
INICIO
FAQS
LINKS
RECOMIENDANOS
QUIENES SOMOS
MAPA DEL WEB
COLABORAR
Tema 22 Constructores y Destructores
Teoría: Constructor de oficio

¿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.