靜態成員變數成員函式

2021-08-09 08:36:06 字數 1365 閱讀 8826

靜態成員變數

1)定義靜態成員變數

ø  關鍵字static可以用於說明乙個類的成員,

靜態成員提供了乙個同類物件的共享機制

ø   把乙個類的成員說明為static時,這個類無論有多少個物件被建立,這些物件共享這個static成員

ø   靜態成員區域性於類,它不是物件成員

#includeusing namespace std;

class counter

//成員函式訪問靜態資料成員

void shownum()

};int counter::num = 0;//宣告與定義靜態資料成員

void main() //結果 : 0 0 10 10

2)使用靜態成員變數

#includeusing namespace std;

class counter

int mem; //公有資料成員

static int smem; //公有靜態資料成員

};int counter::smem = 1; //初始值為1

void main()

cout << endl;

cout << "c.smem = " << c.smem << endl; //訪問靜態成員變數方法1

cout << "c.mem = " << c.mem << endl;

}

1)概念

ø  靜態成員函式數冠以關鍵字static

ø   靜態成員函式提供不依賴於類資料結構的共同操作,它沒有this指標

ø   在類外呼叫靜態成員函式用「類名 ::」作限定詞,或通過物件呼叫

#include using namespace std;

class bb

void addc()

static void getc() //靜態成員函式

protected:

private:

int a;

int b;

static int c; //靜態成員變數

};

//靜態成員函式只能訪問靜態變數

//靜態成員變數屬於整個類的,分不清楚,是那個具體物件的屬性。

靜態成員變數成員函式

1.先來介紹它的第一條也是最重要的一條 隱藏。static函式,static變數均可 當同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。舉例來說明。同時編譯兩個原始檔,乙個是a.c,另乙個是main.c。char a a global variable void m...

靜態成員函式 靜態成員變數

靜態的成員函式,同靜態資料成員類似,它也是屬於類,而不是屬於某乙個物件的。靜態成員函式不能訪問非靜態的資料成員,它只能訪問靜態資料成員,也只能呼叫其它的靜態成員函式。原因是 當前物件的位址 this 是被隱含地傳遞到被呼叫的函式的。但乙個靜態成員函式沒有 this 指標,所以它無法訪問非靜態的成員函...

靜態成員變數 和 靜態成員函式

資料成員可以分靜態變數 非靜態變數兩種.靜態成員 靜態類中的成員加入static修飾符,即是靜態成員.可以直接使用類名 靜態成員名訪問此靜態成員,因為靜態成員存在於記憶體,非靜態成員需要例項化才會分配記憶體,所以靜態成員不能訪問非靜態的成員.因為靜態成員存在於記憶體,所以非靜態成員可以直接訪問類中靜...