我整天都在用谷歌搜索来反对这个问题。 我有一个主对象需要在其构造函数中创建几个其他对象,主对象在其构造函数中获取传递给它创建的对象的变量。
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
最佳答案
我想你想要:
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) { }
};
关于c++ - 在通过构造函数传递变量的对象中创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13538547/