Причина ошибки:
При создании экземпляра производного класса NumGame
Базовый класс Category
не вызывается конструктор аргумента для создания части Category
предмет.У вашего класса его нет, и компилятор жалуется на это.
Почему компилятор не синтезировал конструктор по умолчанию?
Когда вы предоставляете какой-либо конструктор для вашего класса, компилятор не синтезирует конструктор, который не принимает аргумент дляВы, Вы должны предоставить это самостоятельно, если ваш код использует один.
Решения:
Существует два способа избежать ошибки:
Вызвать соответствующий доступный конструктор в базовом классе Catoegory
подобъект через Список инициализаторов элементов .Это удаляет сценарий, в котором ваш код использует конструктор без аргументов.
NumGame::NumGame(int& b) : Category(b)
{
}
ИЛИ
Вам необходимо предоставить constrcutor без аргументов для Category
класса самостоятельно:
Category::Category()
{
}