Проблема с конструкторами в реализации паттерна "Decorator"

Пыталась реализовать паттерн проектирования "декоратор". Столкнулась со следующей проблемой:
При вызове конструктора Concreate_Decorator_A, вызывается конструктор для Decorator без параметров. Идея была в том (насколько я поняла) чтобы при вызове конструктора Concreate_Decorator_A передавалась ссылка на Component, которая лежала бы в классе-родителе.
В данный момент выдаёт слудующие ошибки:
Ошибки кода, приведённого ниже
Подскажите, пожалуйста, как написать тело конструктора Concreate_Decorator_A так, чтобы это реализовать.
(Про то, что плохо смешивать snake_case и CamelCase я знаю, не бейте)
Код:

class Component{
public:
    virtual void Print () = 0;
};

void Component::Print()
{
    cout << "Component" << endl;
}

class Concreate_component : public Component{
    void Print () { cout << "Concreate_component" << endl; }
};

class Decorator : public Component{
public:
    Decorator (Component* c);
    virtual void Print () = 0;
private:
    Component* _component;
};

Decorator::Decorator(Component* c)
{
    _component =c;
}

void Decorator::Print()
{
    _component->Print();
}

class Concreate_Decorator_A : public Decorator{
public:
    Concreate_Decorator_A (Component* c) { Decorator::Decorator(c); }
    void Print ()
    {
        Decorator::Print();
        cout << "Concreate_Decorator_A" << endl;
    }
};

int main()
{
    Component* component = new Concreate_component;
    Concreate_Decorator_A concr_decorator(component);
    concr_decorator.Print();
    return 0;
}

Ответы (1 шт):

Автор решения: tirariharari

Спасибо user7860670.
Чтобы вызвать нужный конструктор:

Concreate_Decorator_A (Component* c): Decorator{c} {}
→ Ссылка