¿Un objeto de clase derivado contiene un objeto de clase base?
Considere el siguiente código de muestra a continuación:
#include <iostream>
using namespace std;
class base
{
public:
base()
{
cout << "ctor in base class\n";
}
};
class derived1 : public base
{
public:
derived1()
{
cout <<"ctor in derived class\n";
}
};
int main()
{
derived1 d1obj;
return 0;
}
Preguntas
Cuandod1obj
se crea, los constructores se invocan en el orden de derivación: primero se llama al constructor de la clase base y luego al constructor de la clase derivada. ¿Se hace esto por la siguiente razón:In-order to construct the derived class object the base class object needs to be constructed first
?
Haced1obj
contiene un objeto de clase base?
Estoy agregando una pregunta más
3) Cuando se crea d1obj, el control llega primero al constructor de la clase base y luego va al constructor de la clase derivada. ¿O es al revés: primero llega al constructor de la clase derivada, encuentra que tiene una clase base y el control va al constructor en la clase base?