构造函数将父类作为参数

时间:2018-05-07 12:50:45

标签: c++ decorator

我正在使用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){}
    };

然后它返回错误:错误:'Decorator'的构造函数必须显式初始化没有默认构造函数的基类'Game'    装饰者(游戏*游戏):m_game(游戏){}    ^

我该如何解决?

1 个答案:

答案 0 :(得分:0)

基类的构造函数需要一个参数。 这将有所帮助(用相应的值替换0)。

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

在C ++中,如果你明确定义了一个构造函数,编译器就不再生成隐式的无参数了。