新來C++和困惑。我查了幾十個類似的問題,每個解決方案是添加#pragma once
或#ifndef/#define/#endif
,但它似乎並不適合我。我有井字板源文件tttBoard.cpp,如下所示:在編譯我來當'class'類型重定義,已經包含ifndef/define/endif
#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
然而:
#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跨越以下錯誤:
tttboard.cpp(5): error C2011: 'tttBoard' : 'class' type redefinition
tttboard.h(4) : see declaration of 'tttBoard'
任何想法?
謝謝!我真的應該先閱讀更多的C++,然後才能開始學習,但這是學校作業所需要的,並沒有得到太多的重視。我認爲我現在理解頭文件好一點了。 – Chris
@Chris沒問題!問問題很好,所以你可以學習。 – oldrinb
不要害怕仔細閱讀你的錯誤信息。 =)這兩條消息告訴了你你做錯了什麼,你在做什麼以及原來的定義在哪裏。 – paddy