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

标签 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

最佳答案

我想你想要:

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/

相关文章:

c# - 需要设计模式建议

C++ 主线程通知线程通知主线程

c++ - 分配和释放内存 C++

c++ - 在游戏中实现漫游行为

c++ - 如何将全局范围函数声明为命名空间类的 friend ?

java - 实现两个方法签名相同但返回类型不同的接口(interface)

c++ - 如果要调用多个成员函数,对象编辑器是一个好方法吗?

C# - 将所有方法参数传递给另一个方法?

architecture - 设计控制台应用程序时的架构考虑?

java - 复杂计算器的对象模型