0

目前我有一个带有构造函数的井字游戏“tttBoard”

    tttBoard::tttBoard() {
    isX = true;
    for (int x = 0; x < 3; ++x) {
        for (int y = 0; y < 3; ++y) {
            gBoard[x][y]=sEmp;
        }
    }
}

应该创建一个新板并用 enum 填充它sEmpisX是一个布尔值,它标志着第一个玩家首先移动。尽管#include "tttBoard.h"在该头文件(如下)中有并且(我相信)有构造函数,但我一遍又一遍地遇到相同的错误:

error C2589: '(' : illegal token on right side of '::'
error C2059: syntax error : '::'
error C2334: unexpected token(s) preceding '{'; skipping apparent function body

tttBoard.h

#ifndef tttBoard
#define tttBoard

class tttBoard {
public:
tttBoard();
    void            Draw();
    void            Move(int x, int y);
    char*           getValue(int x, int y);
private:
    enum sVal {
        sEmp,
        sX,
        sO
    };

    sVal            gBoard[3][3];
    bool            isX;
}

#endif
4

1 回答 1

2
#ifndef tttBoard
#define tttBoard

class tttBoard {

这不是一个适当的包含后卫。您将定义tttBoard为一个空符号,然后为该类使用相同的名称。

#ifndef TTT_BOARD_H
#define TTT_BOARD_H

class tttBoard { 
    // stuff
};

#endif
于 2012-09-12T04:37:59.160 回答