Un
objeto de la clase derivada contiene todos los miembros
de la clase base y todos esos miembros deben ser inicializados.
Por esta razón el constructor de la clase derivada
debe llamar al constructor de la clase base. Al definir
el constructor de la clase derivada se debe especificar
un inicializador base.
Como
ya se ha dicho las clases derivadas no heredan los constructores
de sus clases base. El inicializador base es la forma
de llamar a los constructores de las clases base y
poder así inicializar las variables miembro heredadas. Este
inicilizador base se especifica poniendo, a continuación
de los argumentos del constructor de la clase derivada, el carácter
dos puntos (:) y el nombre del constructor de la clase o las clases
base, seguido de una lista de argumentos entre paréntesis.
El inicializador base puede ser omitido en el caso
de que la clase base tenga un constructor por defecto.
En el caso de que el constructor de la clase base exista, al declarar
un objeto de la clase derivada se ejecuta primero el constructor
de la clase base.
En
el ejemplo del apartado anterior ya se puede ver como se llama al
constructor de la clase base desde el
constructor de la clase derivada:
|