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 por defecto y constructor con parámetros con valor por defecto

Se llama constructor por defecto a un constructor que no necesita que se le pasen parámetros o argumentos para inicializar las variables miembro de la clase. Un constructor por defecto es pues un constructor que no tiene argumentos o que, si los tiene, todos sus argumentos tienen asignados un valor por defecto en la declaración del constructor. En cualquier caso, puede ser llamado sin tenerle que pasar ningún argumento.

El constructor por defecto es necesario si se quiere hacer una declaración en la forma:

C_Cuenta c1;

y también cuando se quiere crear un vector de objetos, por ejemplo en la forma:

C_Cuenta cuentas[100];

ya que en este caso se crean e inicializan múltiples objetos sin poderles pasar argumentos personalizados o propios para cada uno de ellos.

Al igual que todas las demás funciones de C++, el constructor puede tener definidos unos valores por defecto para los parámetros, que se asignen a las variables miembro de la clase. Esto es especialmente útil en el caso de que una variable miembro repita su valor para todos o casi todos los objetos de esa clase que se creen. Considérese el ejemplo siguiente:

En el ejemplo anterior se observa la utilización de un mismo constructor para crear objetos de la clase C_Cuenta de tres maneras distintas. La primera llamada al constructor se hace sin argumentos, por lo que las variables miembro tomaran los valores por defecto dados en la definición de la clase. En este caso Saldo valdrá 0 e Interes también valdrá 0.

En la segunda llamada se pasa un único argumento, que se asignará a la primera variable de la definición del constructor, es decir a Saldo. La otra variable, para la que no se asigna ningún valor en la llamada, tomará el valor asignado por defecto. Hay que recordar aquí que no es posible en la llamada asignar un valor al segundo argumento si no ha sido asignado antes otro valor a todos los argumentos anteriores (en este caso sólo al primero). En la tercera llamada al constructor se pasan dos argumentos por la ventana de la función, por lo que las variables miembro tomarán esos valores.