1
4

1 に答える 1

2

CMoveOK、まず、CBoardとの宣言が必要ですCDeadline。他の問題を修正できるように、ダミーのものをいくつか追加しました。

namespace game {

struct CBoard {};
struct CDeadline {};
struct CMove {};
...

次に、構造体はその参照CPlayer::GameDataを初期化する必要があります。これは次のようになります。CBoardconst

class CPlayer{

        struct GameData
        {
          GameData(const CBoard& board) : pBoard(board) {}
          int mBoard[8][8];
          const CBoard &pBoard;
        };
public:
    CMove Play(const CBoard &pBoard,const CDeadline &pDue);
private:
    int GainsFromMoves(struct GameData gameData);
};

次に、.ccファイルでは、メンバー関数を定義するときに名前空間とクラス名が必要です。

namespace game
{
CMove CPlayer::Play(const CBoard &pBoard,const CDeadline &pDue)
{
     GameData gameData(pBoard);
     return CMove();
}
int CPlayer::GainsFromMoves(GameData gameData){

  int test = 0;

 return test;
}

} // namespace game

これにより、少なくとも次の単純なメインでエラーが解消されます。

int main()
{
  game::CBoard b;
  game::CDeadline d;
  game::CPlayer p;
  p.Play(b, d);
}
于 2012-09-12T07:31:24.120 に答える