使用另一个类成员初始化类成员C++
问题描述:
我有一个包含两个不同类对象作为成员的类。我想用另一个初始化一个成员,但到目前为止,我似乎无法得到这个工作。使用另一个类成员初始化类成员C++
例如,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) {}
};
答
尝试这样的事情
class KApp {
private:
Input input;
Game game;
KApp() : game(&input) {}
};
这是怎么回事与Game game(&input);
是,你声明一个成员game
,编译器已经回升为函数声明,并抱怨说,没有按参数没有类型。
这样,你明确地在KApp的构造函数中调用Game::Game(Input*)
(在这一点上,输入应该使用它的默认构造函数来初始化)。
编辑 - 输入* VS输入&
知府。谢啦。我明白你在说什么。我正在努力尽快完成。我应该这样做,而不是在声明类对象时调用类对象构造函数。我做了调整,它的工作。 – Chemistpp