C ++が初めてで混乱しています。私は何十もの同様の問題を調べましたが、すべての解決策は#pragma once
orを追加する#ifndef/#define/#endif
ことですが、私には当てはまらないようです。以下に示すように、三目並べボードのソース ファイルtttBoard.cppがあります。
#include "stdafx.h"
#include "tttBoard.h"
#include <string>
class tttBoard {
enum sVal {sEmp,sX,sO};
sVal gBoard[3][3];
bool isX;
tttBoard::tttBoard() {
}
void Draw() {
}
void Move(int x, int y) {
}
char* getValue(int x, int y) {}
};
およびそれぞれのヘッダー ファイルtttBoard.h :
#ifndef tttBoard_h
#define tttBoard_h
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
ただし、コンパイル時に次のエラーが発生します。
tttboard.cpp(5): error C2011: 'tttBoard' : 'class' type redefinition
tttboard.h(4) : see declaration of 'tttBoard'
何か案は?