C 中的static 成員變數的一些注意點

2022-06-11 08:39:15 字數 755 閱讀 2463

c++中的static成員變數主要用來為多個物件共享資料

例:

#include using

namespace

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 棧 區域性變數 常量區 字元 文字常量 這之後我們先通過 觀察一下區...