对于这一整天来说,一直在与谷歌进行多次旅行。 我有一个主对象需要在其构造函数中创建几个其他对象,主对象在其构造函数中获取传递给它创建的对象的变量。
class WorldManager{
public:
WorldManager(int x, int y, int z){
//do stuff
}
}
class GameManager{
public:
WorldManager world;
GameManager(int x, int y, int z){
world(x,y,z);
}
}
我收到错误
error: no matching function for call to `GAMEMANAGER::GraphicsManager(HWND__*&, int&, int&)'
它起作用,直到我在世界级的构造函数中要求args
答案 0 :(得分:3)
我认为你想要:
class GameManager{
public:
WorldManager world;
GameManager(int x, int y, int z) : world(x, y, z) { }
};
奇怪的冒号是一个初始化列表,它构造了成员对象和父类以及其他一些东西。
如果您要构建多个对象,请将它们添加到列表中:
class GameManager{
public:
WorldManager world1, world2;
GameManager(int x, int y, int z) : world1(x, y, z), world2(x, y, z) { }
};