Содержит ли объект производного класса объект базового класса?
Рассмотрим следующий пример кода ниже:
#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;
}
Вопросов
когдаd1obj
создается, конструкторы вызываются в порядке деривации: сначала вызывается конструктор базового класса, а затем конструктор производного класса. Это сделано по следующей причине:In-order to construct the derived class object the base class object needs to be constructed first
?
Есть лиd1obj
содержит объект базового класса?
Я добавляю еще один вопрос
3) Когда создается d1obj, элемент управления сначала достигает конструктора базового класса, а затем переходит к конструктору производного класса? Или наоборот: сначала он достигает конструктора производного класса, находит, что у него есть базовый класс, и поэтому управление переходит к конструктору в базовом классе?