Вызов определенного конструктора родительского класса в наследнике

В наследнике всегда вызывается конструктор по умолчанию родительского класса.

Если же нужно вызывать другой конструктор то это делается вот такой записью B():A(параметр)

class A
{    
public:

    int x;
    
    A() // конструктор по умолчанию
    {
        cout << x;
    }

    A(int x) // перегрузка конструктора
    {
        this->x = x;
        cout << x;
    }

};


class B : public A 
{

public:

    B():A(5) // вызываем конструктор и задаем значение 5
    {
    
    }

};

Если нужно задать параметр в конструктор за пределами класса, то используем подобную запись:

B(int x):A(x)  
{
    
}
int main()
{
    B b(777);
}

Если в родительском классе нет конструктора по умолчанию то эта запись обязательна.

Last updated