C++中靜態數據成員,靜態成員函數(static)


類中的靜態成員
    1. 在類中的靜態數據,屬於類共享,不屬於對象獨有
    2. 即使沒有定義對象,靜態成員也是存在的
    3. 靜態數據成員在類中說明,在類外定義 並且會給他分配內存空間,並初始化(一經定義則必須初始化)
    4. 可以通過對象去訪問靜態成員,但是這里容易讓人產生誤解,以為他們是成員變量(靜態成員是被所有對象共享的
        所以也可以去修改它) 我們一般通過   類名::靜態成員  去訪問它們
    5. 他的生存周期一直存在於整個程序的生命周期
 
靜態成員的定義
 int Class : : a=10;
數據類型+類名+作用域符號+變量名=10;
 
靜態成員函數
    1. 靜態成員函數屬於一個類,而不屬於類中的任何對象
    2. 靜態成員函數的說明和定義與靜態數據成員一樣,函數可以實現在類體內,也可以實現在類體外
    3.  靜態成員函數在實現中,可以直接使用靜態成員,也可以通過對象來使用非靜態成員!!
        這里說明,靜態成員函數不能是虛函數,不能直接訪問非靜態成員,因為他是類所有,而不是對象所有
        虛函數和靜態成員是對象創建的時候才會有的,這里靜態成員函數不屬於對象,那么也就不能定義為虛函數,更不能使用成員變量
 
C語言的static和C++static總結:
static在C中的用法,對於C++來說是全盤接受的 兩者的不同就在於C++中的類使用
C中的static變量其影響不在於作用域,在於其存儲方式
C中的static函數,即內部函數,它其實是將訪問權限限值在文件內部,文件外部無法訪問
也是一種隱藏機制(類似當成private) 如果要訪問需要加上extern  而extern是默認的
 
C語言中局部靜態變量 作用域是函數體內,生存周期是整個程序運行期間


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM