Конструктор принимает родительский класс в качестве аргумента - PullRequest
0 голосов
/ 07 мая 2018

Я использую шаблон оформления Decorator. Декоратор наследуется от класса Game и принимает игру в качестве аргумента.

    class Game {
       protected:
       int a;
       public:
       ~Game();
       Game(int a);
    };

    class Decorator : public Game{
       Game *m_game;
       public:
       Decorator(Game *game):m_game(game){}
    };

Затем возвращается error: error: конструктор для «Decorator» должен явно инициализировать базовый класс «Game», у которого нет конструктора по умолчанию Декоратор (Игра * игра): m_game (игра) {} ^

Как я могу это исправить?

1 Ответ

0 голосов
/ 07 мая 2018

Конструктор вашего базового класса требует аргумента. Это поможет (замените 0 на соответствующее значение).

Decorator(Game *game) : Game(0), m_game(game) {}

В C ++, если вы явно определяете конструктор, компилятор больше не генерирует неявный без параметров.

...