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 が入力されsEmpます。isX最初のプレーヤーが最初に移動することを示すブール値です。#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 に答える