Порядок вызова конструкторов при наследовании? Здравствуйте. Мне не совсем понятно, в каком ПОРЯДКЕ происходят вызовы конструкторов при наследовании? Пример:#include 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 <
При наследовании сначала вызывается конструктор базового класса (в данном случае Parent), а потом конструктор производного класса (в данном случае Child). То есть, при создании объекта Child c, сначала вызывается конструктор Parent, а затем конструктор Child.
В вашем примере вывод будет следующим: Parent Child
При наследовании сначала вызывается конструктор базового класса (в данном случае Parent), а потом конструктор производного класса (в данном случае Child). То есть, при создании объекта Child c, сначала вызывается конструктор Parent, а затем конструктор Child.
В вашем примере вывод будет следующим:
Parent
Child
Надеюсь, это помогло разобраться!