Ошибка "no matching function"

программисты! Учу C++ по книне Васильева А.Н. "Программирование на С++ ". Столкнулся с такой проблемой, что не могу скомпилировать код из главы "Наследование обобщенных классов". Ниже приведу сам код. Пишу все в CodeBlocks. Ошибка:

error: no matching function for call to 'Charlie<std::__cxx11::basic_string<char>, и тд>'

Что тут не так?

#include <iostream>
#include <cstdlib>
#include <string>
 
using namespace std;
 
template<class A> class Alpha
{
public:
    A alpha;
 
    Alpha(A a)
    {
        alpha = a;
    }
 
    void show()
    {
        cout << "Поле Alpha: " << alpha << endl;
    }
};
 
template<class B> class Bravo
{
public:
    B bravo;
 
    Bravo(B b)
    {
        bravo = b;
    }
 
    void show()
    {
        cout << "Поле Bravo: " << bravo << endl;
    }
};
 
template<class A, class B, class C> class Charlie : public Alpha<A>, public Bravo<B>
{
public:
    C charlie;
 
    Charlie(C c) :Alpha<A>(a), Bravo<B>(b)
    {
        charlie = c;
    }
 
    void show()
    {
        Alpha<A>::show();
        Bravo<B>::show();
        cout << "Поле Charlie: " << charlie << endl;
    }
};
 
int main()
{
    system("chcp 1251>nul");
 
    Charlie<string, char, int> objA("текст", 'A', 100);
    Charlie<int, double, char> objB(200, 5.5, 'B');
 
    objA.show();
    objB.show();
 
    return 0;
}

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

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

Достаточно написать корректный конструктор....

template<class A, class B, class C>
Charlie(A a, B b, C c) :Alpha<A>(a), Bravo<B>(b)
{
    charlie = c;
}
→ Ссылка