對於一個學校任務,我們被指示製作一個TicTacToe委員會。我的程序當前工作,但這裏是我遇到了一些問題,我也不太清楚他們爲什麼不正確:初學者C++問題(學校項目調試問題)
class TicTacToe{
private:
char user_Turn[] = {'x','o'}; //Array to keep track of turn
當我試着和我得到一個錯誤和警告編譯。警告是「非靜態數據成員的類內初始化是C++ 11擴展」。在課堂上初始化非靜態數據成員是不好的做法嗎?爲什麼?
錯誤是「數組邊界不能從在級初始化器推導」。當我在陣列中放置一個'2'時,它就會消失。所以類中的數組需要被綁定?這是爲什麼?爲什麼不能通過初始化器推導出界限?
我的第二個問題是,在同一個項目需要我們用一個枚舉對象來聲明一個勝利者/失敗者/名爲董事會單獨的類畫。枚舉是公開宣稱:
public:
enum Game {X_WON, O_WON, DRAW, UNFINISHED}; //enum declaration
和我的井字遊戲類有一個董事會對象稱爲委員會1的數據成員。爲什麼使用枚舉我需要做的:
Board::UNFINISHED
,而不是
Board.UNFINISHED
此外,即使在我局實施的文件,我需要做的這是返回一個枚舉變量的函數:
Board::Game Board::gameState()
它在同一個班級,所以爲什麼遊戲需要由'Board ::'進行。我想我很少理解枚舉與類的關係。
謝謝!非常感謝誰回答。
這是一個問題和答案網站。問題是單數,而不是複數。其中兩個問題甚至不是關於你發佈的三行(不完整)代碼。您可能想要查看[問]。 (編譯器錯誤不是*調試*,以供將來參考。調試是找出爲什麼你正在執行的代碼不能按預期工作,並且你不能執行無法編譯的代碼。) –
我定義了Questio ** N **和答案,而不是問題** S **和答案。顯然你很難區分單數(** ONE **)和多個(** MORE THAN ONE **)之間的差異。在獲得有關正確使用本網站的信息時,您應該花時間代替[參觀]並閱讀[幫助]頁面以瞭解該網站的工作方式,而不是嗤之以鼻。他們不是連接的問題;他們是關於同一代碼中兩個單獨問題的三個問題,其中大部分甚至未包含在問題中。是的,**單數**實際上意味着**一個**。去谷歌上查詢。 –