Порядок вызова конструкторов при наследовании? Здравствуйте.
Мне не совсем понятно, в каком ПОРЯДКЕ происходят вызовы конструкторов при наследовании?
Пример:#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 <

4 Ноя 2019 в 19:48
195 +1
0
Ответы
1

При наследовании сначала вызывается конструктор базового класса (в данном случае Parent), а потом конструктор производного класса (в данном случае Child). То есть, при создании объекта Child c, сначала вызывается конструктор Parent, а затем конструктор Child.

В вашем примере вывод будет следующим:
Parent
Child

Надеюсь, это помогло разобраться!

19 Апр 2024 в 02:59
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир