C C 學習記錄 靜態常量

2022-06-11 23:57:12 字數 2043 閱讀 5879

一般情況下,簡單的陳述性知識會讓我們覺得,自己對學的每乙個知識點都掌握了。但是結果往往是是腦子會了,手還不會。所以,今天覆習c++程式設計的時候直接用乙個小程式來體現。大家都玩過井字棋吧,一種非常無聊且簡單的遊戲。現在我們用c++的物件導向的特點來完成這個小小的遊戲。注:不是圖形介面的程式設計

簡單思考一下,我們就會發現,井字棋的類裡面應該包含:儲存所有勝利情況、棋盤當前狀況、使用者當前下棋狀態等變數,以及判斷使用者是否勝利的方法。基於此我們可以把現在定義的類寫出來。

class c;
我們來觀察上面的這個類定義,首先下棋是勝利方式,不應該是乙個玩家單獨遵守的,而是所有玩井字棋遊戲的玩家共同遵守的。其次,咱們的棋盤狀態也應該是玩家共有的。所以我們應該把這兩個變數修改為整個類共同擁有的狀態。整個類共同擁有的意思就是,我們可以直接用類的名稱來訪問該變數,而不是用物件來訪問。舉乙個簡單的例子,現在我們有乙個類,假設就是狗類。現在我們要統計所有狗的個數,那麼我們就可以設計乙個容器,每當有乙個狗物件產生了,我們就加一。這個容器應該和類一起產生和消亡,並且應該只會申請一次空間。  c++為我們提供這類共有變數的方法是:靜態變數static。所以我們應該把上面的類重新定義為:

class c
然後,我們剛才也提到了勝利方式的應該是不變的,即在程式執行的過程中,它不允許被改變。於是我們還要用到關鍵字:const。所以類的完整定義應該是:

class c
**實現的邏輯很簡單,就不在贅述。

**

//////////////////////////////////

//////////////標頭檔案/////////////

#ifndef _jchess_h_

#define _jchess_h_

class c;

bool place(char* way,char ch);

#endif

//////////////////////////////////////

////////////標頭檔案原始檔//////////////

#include #include #include "jchess.h"

const char c::winway[8][3]=,,,,,,,};//獲勝的可能性

char c::places[10]="123456789";

c::c()

c::~c(){}//析構函式

void c::playing(char ch)//下棋

bool c::iswinner()//判段勝負

else

return false;

}bool c::matching()

} if(match == 3)

}if(match == 3) }

return false;

}

bool place(char* way,char ch)

way[index] = 0;

return true;

}/////////////////////////////////////////

/////////////主函式//////////////////////

using namespace std;

int main()

a.playing(ai);

++count;

if(a.iswinner())

++count;

b.playing(bi);

if(b.iswinner())

,,,,,,,};//獲勝的可能性

char c::places[10]="123456789";4.2使用情況

1、盡量用const替代程式中/#define。因為,預定義定義實在編譯的時候處理的,所以我們定義的符號並沒有出現在符號裡面,導致程式出現錯誤。還有就是使用使用#define可能會出現多個變數副本的出現。

2、const char* p代表的靜態常量p;char* const p代表靜態指標。

3、對於很多不可變的變數一定要記得加上const。

C C 學習記錄

include 函式宣告 void func1 void static int count 10 全域性變數 static 是預設的 int main return0 void func1 void 輸出 thingy 為6,count 為9thingy 為7,count 為8thingy 為8,c...

c 學習記錄 常量指標和指標常量

兩個比較容易混淆的概念。const int p int const p intconst p 這是常見的三種寫法,按照從左至右的順序記憶,按照從右至左的順序理解。只關注const 和 的先後先後順序,const讀做常量,讀做指標。參考 effective c item21上的做法,如果const位於...

C C 指標 常量

1.1 1 在c 中常量可分為6種,它們是整型常量 實型常量 字元型常量 字串常量 符號常量 邏輯型常量 2 const在前,內容不能變 const在後,指標不能變 const 指標指向為常量 const 指標本身為常量1.2把 讀作 pointer to 從右至左唸 1 b是乙個常量 const ...