c++中的static成員變數主要用來為多個物件共享資料
例:
#include usingnamespace
std;
class
student;
//初始化靜態成員變數
int student::m_total = 0
;student::student(
char *name, int age, float
score): m_name(name), m_age(age), m_score(score)
void
student::show()
intmain()
執行結果:
小明的年齡是15,成績是90(當前共有1名學生)
李磊的年齡是16,成績是80(當前共有2名學生)
張華的年齡是16,成績是99(當前共有3名學生)
王康的年齡是14,成績是60(當前共有4名學生)
需要注意的是:
1.static成員變數必須在類宣告的外部進行初始化。例如上面的**:int student::m_total = 0;
2.static成員變數和普通static變數一樣,都在記憶體分割槽的全域性資料區分配記憶體,到程式結束後釋放。這就意味著,static 成員變數不隨物件的建立而分配記憶體,也不隨物件的銷毀而釋放記憶體。而普通成員變數在物件建立時分配記憶體,在物件銷毀時釋放記憶體。
C 中static成員變數
1 static成員變數屬於類,不屬於某個具體的物件,即使建立多個物件,也只為static成員變數分配乙個記憶體 所有物件都是這個記憶體裡的statiic變數,如果對其做出修改也會影響到其他物件的使用 2 static成員變數必須在類外進行初始化 形如 type class name value i...
static成員變數的使用
最近自己在研究c 中static成員變數的注意事項,只是自我研究,僅供參考 例如 file1.h ifndef file 1 h define file 1 h void func1 void void func2 void static int func void endif file 1 h f...
類中static變數和成員變數
要理解標題,我們首先來看下static變數本身的特殊之處,即它儲存在全域性資料區。在類中的static變數也是如此。c 的記憶體分布 區 函式體的二進位制 全域性資料區 全域性變數和static變數 堆 動態記憶體分配 通過new 棧 區域性變數 常量區 字元 文字常量 這之後我們先通過 觀察一下區...