關鍵字 static 可以用於說明乙個類的成員,靜態成員提供了乙個同類物件的共享機制,把乙個類的成員說明為 static 時,這個類無論有多少個物件被建立,這些物件共享這個 static 成員,靜態成員區域性於類,它不是物件成員。
//建立與初始化
classx ;
intx :: s = 0 ;
#include
class counter
int mem; //公有資料成員
static
int smem ;//公有靜態資料成員
} ;int counter :: smem = 1 ; //初始值為1
void main()
cout
<<"c.smem = "
<<"c.mem = "
《無論這個有多少個物件被建立,都能共享這個static成員。在類外初始化,不需要類例項化也可以訪問static成員。
class myclass
;int myclass :: num=1;
void main()
靜態成員函式數冠以關鍵字static。靜態成員函式提供不依賴於類資料結構的共同操作,它沒有this指標。
在類外呼叫靜態成員函式用 「類名 :: 」作限定詞,或通過物件呼叫
class x
; void x :: stafun ( int i , x * ptr )
void g()
靜態成員函式都在**區,類的函式都是共享**共享。
class myclass
;//函式指標的構造
myclass myclass1;
//void (myclass::*p)()=&myclass1:run();//error
void (myclass:: *p)=&myclass::run();//普通成員函式
void (*p)()=&myclass::go();//靜態函式指標與物件無關
C 之類的靜態成員
類的靜態成員 用關鍵字static宣告 為該類的所有物件共享,靜態資料成員具有靜態生存期。必須在類外定義和初始化,用 來指明所屬的類。include using namespace std class point point point p point intgetx intgety void sh...
C 系列之類的靜態成員
靜態成員函式中不能呼叫非靜態成員,非靜態成員函式中可以呼叫靜態成員,因為靜態成員在編譯時已經存在,先於物件而存在,因而無法使用物件的成員函式 靜態成員變數使用前必須先初始化,否則會在linker時出錯 靜態成員的特性 不管這個類建立了多少個物件,而其靜態成員只有乙個拷貝 副本 這個拷貝被所有屬於這個...
C 靜態成員 2 靜態資料成員
目錄 1.靜態成員的構造 2.靜態成員的訪問 3.靜態成員的初始化 include class a class b int main 輸出 b s constructor called 結論 程式只呼叫了b的建構函式,而沒有呼叫a的建構函式。原因很簡單,靜態成員僅僅在類宣告的時候而宣告,但是不會定義...