類中的靜態成員變數、靜態成員函式?
(1)類中的靜態成員變數:
靜態成員變數屬於整個類,不屬於某個特定的物件,因此無論建立了多少個物件,所有物件都共享類中的靜態成員變數。靜態成員變數必須在類內宣告,類外初始化。
(2)類中的靜態成員函式:
靜態成員函式也是屬於類本身,而不屬於某個特定的物件。靜態成員函式與普通成員函式最大的區別在於,靜態成員函式沒有this指標,普通的成員函式被呼叫時,都會將呼叫它的物件的位址傳給this指標。由於靜態成員函式沒有this指標,因此它不能訪問類的非靜態成員(因為非靜態成員都是用過this指標隱式訪問的),靜態成員函式只能訪問靜態成員了(包括靜態成員變數、靜態成員函式)。
另外,訪問靜態成員時,可以通過物件訪問,也可以通過類訪問,通過物件訪問會轉換成通過類的訪問,物件不會隱式的傳遞自己的位址,因為沒地方傳啊,靜態成員函式就沒有this指標。另外,靜態成員也可以通過成員訪問控制符控制其的訪問屬性。
靜態成員函式 靜態成員變數
靜態的成員函式,同靜態資料成員類似,它也是屬於類,而不是屬於某乙個物件的。靜態成員函式不能訪問非靜態的資料成員,它只能訪問靜態資料成員,也只能呼叫其它的靜態成員函式。原因是 當前物件的位址 this 是被隱含地傳遞到被呼叫的函式的。但乙個靜態成員函式沒有 this 指標,所以它無法訪問非靜態的成員函...
C 類的靜態成員變數與靜態成員函式
什麼是靜態成員變數?又為什麼出現?在c語言中稱之為靜態變數,因為c 中增加了類的概念,所以稱之為靜態成員變數。宣告方式 在一般變數的宣告前加上static static int char a 作用 static 修飾的變數在它所在的函式生存期結束後在該函式體內部依然儲存其原有的值 看個小例子 inc...
C 類的靜態成員變數和靜態成員函式
class person static int m age 加入static 就是靜態成員變數,會共享資料 靜態成員變數,在類內宣告,類外進行初始化 int person.m age 0 類外初始化實現 對屬性進行修改 void test01 private stactic int m other ...