這篇介紹了靜態(tài)成員函數(shù)與靜態(tài)成員變量,是我的讀書筆記,我希望它夠簡短但又比較全面,起到復(fù)習(xí)的作用。如果有一些C++知識記不清楚了,它可以幫你很快回憶起來。

復(fù)習(xí)C語言的static關(guān)鍵字

(1)加在局部變量的前面使之成為靜態(tài)局部變量,作用域還是在函數(shù)內(nèi)部,可是生存周期延長了。

(2)加在全局變量的前面限定該變量作用域?yàn)槲募饔糜?,就是說即使其他文件使用了extern擴(kuò)展作用域也不行。這在C語言的多人項(xiàng)目中非常有用,避免了變量的重名。然而在C++中這一功能已經(jīng)被命名空間取代,但是為了保持和C語言的兼容,static還是有這樣的功能。

(3)加在函數(shù)定義或聲明的前面,限定函數(shù)作用域到文件作用域,也是為了避免多個(gè)文件中有重名函數(shù)。

當(dāng)static關(guān)鍵字出現(xiàn)在類中

當(dāng)static出現(xiàn)在類的定義中便出現(xiàn)了靜態(tài)成員變量和靜態(tài)成員函數(shù)。靜態(tài)成員是屬于類的,而不是屬于某個(gè)對象的。即便沒有任何一個(gè)實(shí)例,類的靜態(tài)成員變量也已經(jīng)存在了,而且還可能通過“類名::成員名”進(jìn)行訪問。類的靜態(tài)成員函數(shù)也可以用相同的方式調(diào)用,在類產(chǎn)生實(shí)例之前就調(diào)用成員方法,典型應(yīng)用是實(shí)現(xiàn)單例模式。

(1)靜態(tài)成員變量

靜態(tài)成員變量本質(zhì)上是全局變量,但是將和某些類關(guān)系緊密的全局變量寫到類里面,形式上成為一個(gè)整體,更容易理解和維護(hù)。所以盡量使用靜態(tài)成員變量吧,減少全局變量的使用。普通成員變量每個(gè)對象都有各自的一份,但是靜態(tài)成員變量一共只有一份,被所有的本類對象共享。如果使用sizeof運(yùn)算符計(jì)算對象的大小,得到的結(jié)果是不包含靜態(tài)成員變量在內(nèi)的。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式