類資料成員

2022-09-05 17:27:16 字數 1136 閱讀 3067

3.7.1   類資料成員

例3-35

本例舉例說明了宣告靜態成員的語法。task類的資料成員n與task類本身相關,與任何task物件無關。由於n是靜static,它對整個task類而言只有乙個,而不是每個task物件都有乙個n。圖3-6展示了類c,它擁有乙個非static資料成員x和乙個static資料成員s。

我們可以利用n來確定當前存在的task物件的數量,為此我們對task類的建構函式和析構函式作如下修改:

假定static資料成員n初始化為0,則n就會將執行時task物件的數量儲存下來。

如例3-35所示,static資料成員在類宣告的內部宣告,同時static資料成員還需進行定義。

例3-36

本例修改了例3-35,增加了對static資料成員n的定義。正如以上**所示,在類宣告內部宣告的static資料成員必須在任何程式塊之外定義。請注意資料成員的名稱是task::n而不是n。我們將task::n初始化為0,但這不是必需的,因為在所有程式塊之外定義的任何變數都將自動地初始化為0,除非程式設計人員提供乙個不同的初值。

static資料成員不會影響該類及其物件的sizeof。

例3-37

在系統中表示式sizeof(c)和sizeof(c1)的值都是16。如果將類宣告做如下修改:

這兩個sizeof表示式仍然等於16,這是因為static資料成員不影響該類與類物件的sizeof。

指向類資料成員 類成員函式的指標

成員指標是指可以指向類的非靜態成員的指標,一般情況下指標指向乙個物件,但是成員指標指示的是類的成員,而非類的物件,類的靜態成員不屬於任何物件,因此無須特殊的指向靜態成員的指標,指向靜態成員的指標與普通指標沒有什麼區別,成員指標的型別囊括了類的型別以及成員的型別,當初始化乙個這樣的指標時,我們令其指向...

類 Static 資料成員筆記

靜態資料成員的使用方法和注意事項如下 1 靜態資料成員在定義或說明時前面加關鍵字static。2 靜態成員初始化與一般資料成員初始化不同。靜態資料成員初始化的格式如下 資料型別 類名 靜態資料成員名 值 這表明 1 初始化在類體外進行,而前面不加static,以免與一般靜態變數或物件相混淆。2 初始...

類的靜態資料成員

有時需要為某個類的所有物件分配乙個單一的儲存空間。在c語言中,可以用全域性變數,但這樣很不安全。全域性資料可以被任何人修改,而且,在乙個專案中,它很容易與其他的名字 相衝突。如果可以把乙個資料當成全域性變數那樣去儲存,但又被隱藏在類的內部,並且清楚地 與這個類相聯絡,這種處理方法當然是最理想的了。這...