c 之靜態函式和靜態方法

2021-07-31 18:06:57 字數 1525 閱讀 2876

1 物件與物件之間要共享資料,則需要使用靜態成員或靜態方法。

2 在類中宣告靜態成員變數,即使不例項化物件,也可以我靜態成員變數分配空間。(因為靜態成員變數在物件建立之前就已經被分配了記憶體空間)

3  靜態成員雖在類中,但它並不是隨物件的建立而分配記憶體空間的,也不是隨物件的撤銷而釋放(一般的成員在物件建立時會分配空間,在物件撤銷時會釋放)。靜態成員變數是在程式編譯時分配空間,而在程式結束時釋放空間。

4 初始化靜態成員變數要在類的外面進行。int player::playernumber = 0;初始化的格式如下:

資料型別名 類名::靜態成員變數名=初值;

5 可以通過類名對靜態成員變數進行引用,也可以通過物件名對靜態成員變數進行引用。

6 不能用引數初始化表對靜態成員變數進行初始化。

**示例:以下**是兩個小人相互攻擊的示例

#include#includeusing namespace std;

class player

//析構 總數減1

~player()

//獲取攻擊力

int getattack()

//設定攻擊力

void setattack(int attackparam)

//獲取防禦力

int getdefense()

//設定防禦力

void setdefense(int defenseparam)

//改變生命值

void changehealth(int healthparam)

else if (health <= 0)

}//顯示屬性

void displayproperty()

void attackplayer(player* otherplayer)

static int displaynumber()

};int player::playernumber = 0;

int main()

if (player02)

cout << player::playernumber << endl;

if (player01)

if (player02)

cout << player::playernumber << endl;

system("pause");

return 9696969;

}

c 靜態函式和靜態成員

靜態函式 在類內宣告static,在類外定義時不能再用static,靜態函式可以訪問類的靜態物件。靜態物件 靜態物件不屬於任何乙個物件,所以他們並不是在建立類的物件時被定義的,也就是不能被建構函式初始化。要想定義全域性變數一樣定義靜態物件。生命週期和全域性變數一樣。通常,為了防止物件多次定義,最好把...

靜態變數和靜態函式

靜態變數 靜態變數使用 static 修飾符進行宣告 在所屬類被裝載時建立 通過類進行訪問 所屬類的所有例項的同一靜態變數都是同乙個值 非靜態變數 不帶有 static 修飾符宣告的變數稱做非靜態變數 在類被例項化時建立 通過物件進行訪問 同乙個類的不同例項的同一非靜態變數可以是不同的值 在c 中,...

靜態函式和靜態變數

記憶體大致可以劃分為 棧區堆區 全域性 靜態區 常量區 區 其中棧區位於高位址,區位於低位址。區 存放程式 段 常量區 存放各種常量 數值常量和字串常量等 全域性 靜態區 存放全域性變數和靜態變數,未初始化的和初始化的分開存放 堆區 使用new就是在該區申請 棧區 存放區域性變數等 a.件 clas...