1

グーグルへの多くの旅行で、これに対して一日中頭をぶつけていました。コンストラクターで他のいくつかのオブジェクトを作成する必要があるマスターオブジェクトがあります。メインオブジェクトは、作成するオブジェクトに渡されるコンストラクターで変数を取得します。

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&)'

ワールドクラスのコンストラクターで引数を要求するまで機能します

4

1 に答える 1

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) { }
};
于 2012-11-24T05:31:10.850 に答える