Estudiante
Los constructores y destructores no son heredados por las clases derivadas. Sin embargo, una instancia de una clase derivada contendrátodos los miembros de la clase base, y éstos deben ser iniciados. En consecuencia, el constructor de la clase base debe ser llamado por el constructor de la clase derivada, por lo tanto, siel constructor de la clase base tiene un constructor, la clase derivada forzosamente1 debe tener también un constructor.
Cuando se escribe un constructor para la clase derivada, sedebe especificar una forma de inicio para la base. La forma de hacerlo es utilizar una sintaxis similar a la empleada con los miembros de inicio para los objetos miembro de una clase.Esto es, se coloca : después de la lista de argumentos del constructor de la clase derivada, y seguidamente el nombre de la clase base y la lista de argumentos, ver los primeros 2constructores de la clase C en el ejemplo.
Cuando se declara un objeto de una clase derivada, el compilador ejecuta el constructor de la clase base en primer lugar, y después ejecuta elconstructor de la clase derivada. Si la clase derivada tuviera objetos miembro, sus constructores se ejecutarían después del constructor de la clase base, pero antes que el constructor dela clase derivada. Por lo que respecta a los destructores en la jerarquía de clases, se llaman en orden inverso de la derivación, es decir de la clase derivada a la clases base. Laúltima clase creada es la que se destruye en primer lugar.
Se puede omitir el iniciador de la clase base siempre que la clase base tenga un constructor por defecto, ver SegundoConstructor Común de C en el ejemplo.
1
Ver NOTA al final del documento.
Ejemplo:
#include using namespace std; class B { int a, b, c; public: B() //Constructor por Defecto { cout
Regístrate para leer el documento completo.