通过构造函数在对象中创建对象传递变量

时间:2012-11-24 05:25:53

标签: c++ oop

对于这一整天来说,一直在与谷歌进行多次旅行。 我有一个主对象需要在其构造函数中创建几个其他对象,主对象在其构造函数中获取传递给它创建的对象的变量。

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

1 个答案:

答案 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) { }
};