在c++中,靜態成員是屬於整個類的而不是某個物件,靜態成員變數僅僅儲存乙份供全部物件共用。所以在全部物件中都能夠共享它。使用靜態成員變數實現多個物件之間的資料共享不會破壞隱藏的原則,保證了安全性還能夠節省記憶體。
static成員的全部者是類本身和物件,可是多個物件擁有一樣的靜態成員。從而在定義物件時不能通過建構函式對其進行初始化; 靜態成員不能在類定義裡邊初始化,僅僅能在class body外初始化; 靜態變數依然符合public、private、protect特性; 靜態成員函式沒有this指標,它不能返回非靜態成員,由於除了物件會呼叫它外,類本身也能夠呼叫 。
一 靜態變數
1、靜態變數必須在外部定義和賦值
a、不能在 main() 函式中定義
b、不能在類的建構函式中定義
2、必需要定義靜態變數,否則該變數沒有記憶體空間(類中僅僅是申明)
3、類本身能夠直接呼叫靜態變數
4、靜態變數依然符合public、private、protect特性
二 靜態方法
1、靜態方法能夠被類直接呼叫,可是同靜態變數一樣符合public、private、protect特性
2、靜態成員函式不能夠呼叫類的非靜態成員。由於靜態成員函式不含this指標。
3、靜態成員函式不能夠同一時候宣告為 virtual或字尾const 函式。由於virtual就是用來區分是哪個物件呼叫了他,與靜態方法矛盾。
而字尾const是用來修飾this指標的,靜態變數中不包括this指標。
a、不能夠同一時候宣告為 virtual
b、不能夠同一時候宣告為字尾const
C 類中靜態變數和靜態方法的使用
靜態成員的提出是為了解決資料共享的問題。實現共享有許多方法,如 設定全域性性的變數或物件是一種方法。但是,全域性變數或物件是有侷限性的。這一章裡,我們主要講述類的靜態成員來實現資料的共享。靜態資料成員 在類中,靜態成員可以實現多個物件之間的資料共享,並且使用靜態資料成員還不會破壞隱藏的原則,即保證了...
C 類中靜態變數和靜態方法使用介紹
靜態成員的提出是為了解決資料共享的問題。實現共享有許多方法,如 設定全域性性的變數或物件是一種方法。但是,全域性變數或物件是有侷限性的。這一章裡,我們主要講述類的靜態成員來實現資料的共享。靜態資料成員 在類中,靜態成員可以實現多個物件之間的資料共享,並且使用靜態資料成員還不會破壞隱藏的原則,即保證了...
C 類中靜態變數和靜態方法使用介紹
刷劍指offer第64題涉及到類內靜態成員與方法的知識,有點模糊,找了兩篇部落格整理一下。最近一直看c 相關的專案,但總是會被c 類中的靜態成員變數與靜態成員函式的理解感覺很是模糊,不明白為什麼類中要是用靜態成員變數.於是在網上蒐集了一些資料,自己再稍微總結下。靜態成員的概念 靜態類中的成員加入st...