C++常識(shí)之——靜態(tài)成員與靜態(tài)成員函數(shù)
之所以需要定義靜態(tài)變量or靜態(tài)函數(shù),是為了完成某些全局變量或函數(shù)才能完成的功能,而又不會(huì)破壞類的封裝性同時(shí)也解決了對(duì)命名空間的污染。靜態(tài)可分為全局靜態(tài)與局部靜態(tài):全局靜態(tài)與普通變量的區(qū)別在于解決他的作用域,普通全局變量可以通過(guò)extern關(guān)鍵詞被其他某塊訪問(wèn),而全局靜態(tài)不可以,所以不會(huì)有命名沖突問(wèn)題。
局部靜態(tài)與普通局部變量的區(qū)別在于解決變量的生存期:因?yàn)殪o態(tài)成員在內(nèi)存中只有一份(屬于類而不屬于對(duì)象),所以他的生存期和類的生存期是一樣的,也就使得它可以記錄下每個(gè)對(duì)象對(duì)他的操作結(jié)果。
下面再說(shuō)說(shuō)靜態(tài)函數(shù):
類的靜態(tài)函數(shù)同樣有靜態(tài)變量的特性,同時(shí)靜態(tài)函數(shù)只能調(diào)用類的靜態(tài)成員變量或靜態(tài)成員函數(shù),因?yàn)槠洳粚儆谌魏螌?duì)象,所以不能通過(guò)對(duì)象來(lái)調(diào)用。調(diào)用方式:類名::function(); function可聲明為private 或protected(這一點(diǎn)和普通成員函數(shù)是一樣的)
posted on 2009-08-19 09:56 葉子 閱讀(954) 評(píng)論(0) 編輯 收藏 引用 所屬分類: C\C++