使用另一个类成员C ++初始化一个类成员

时间:2015-07-22 00:02:38

标签: c++ class

我有一个有两个不同类对象的类作为成员。我想用另一个成员初始化其中一个成员,但到目前为止我似乎无法使其工作。

例如,Game game(&input);包含必须指定类型的错误。我该怎么做呢?

class KApp { 
private:
    Input input;
    Game game(&input);

};


class Input {
    Input() {};
};

class Game {
private:
    Input* input;
public:
    Game(Input & inp) : input(&inp) {}
    Game(Input* inp) : input(inp) {}
};

1 个答案:

答案 0 :(得分:1)

尝试这样的事情

class KApp { 
private:
    Input input;
    Game game;
    KApp() : game(&input) {}
};

Game game(&input);发生的事情是,您正在声明成员game,编译器已将其作为函数声明并且抱怨该参数没有一种类型。

这样,您就可以在KApp的构造函数中显式调用Game::Game(Input*)(此时应使用默认构造函数初始化输入)。

编辑 - 输入* vs输入&