static成員函數屬於類,獨立於對象存在,不依賴於對象。隨着類的加載而加載,優先於對象存在,被所有對象共享,可以直接被類名調用。
調用方式:
類名::成員名
對象名.成員名
static成員函數中沒有this指針,非static成員函數中擁有this指針。
對象與對象之間的成員變量是相互獨立的。要想共用數據,則需要使用靜態成員和靜態方法
靜態成員變量雖然在類中,但它並不是隨對象的建立而分配空間的,也不是隨對象的撤銷而釋放(一般的成員在對象建立時會分配空間,在對象撤銷時會釋放)。靜態成員變量是在程序編譯時分配空間,而在程序結束時釋放空間。
普通成員函數和靜態成員函數的區別是:普通成員函數在參數傳遞時編譯器會隱藏地傳遞一個this指針.通過this指針來確定調用類產生的哪個對象;但是靜態成員函數沒有this指針,不知道應該訪問哪個對象中的數據,所以在程序中不可以用靜態成員函數訪問類中的普通變量.