Здравствуйте.
Мне не совсем понятно, в каком ПОРЯДКЕ происходят вызовы конструкторов при наследовании?
Пример:
#include <iostream>
using namespace std;
class Parent
{
public:
int m_Id;
Parent(int Id = 0)
: m_Id(Id)
{
cout << "Parent\n";
}
int GetId() const { return m_Id; }
};
class Child : public Parent
{
public:
double m_Value;
Child(double Value = 0.0)
: m_Value(Value)
{
cout << "Child\n";
}
double GetValue() const { return m_Value; }
};
int main()
{
Parent p;
Child c;
return 0;
}
Я понимаю, что при создании Child c сначала создается часть Parent, а потом часть Child.
Но в каком порядке? Сначала вызывается конструктор Child, потом конструктор Parent, а потом уже продолжается выполнение конструктора Child? Или при создании Child c СРАЗУ вызывается Parent(), а уже после вызывается Child()?
Надеюсь, понятно выразился)
Всем спасибо.