C++學習之static關鍵字總結

static用來聲明靜態變量。用法大致可以分爲一下幾類。

一、靜態局部變量

  • 該變量在全局數據區分配內存,而局部變量在棧區分配內存
  • 靜態局部變量在程序執行到該對象的聲明處時被首次初始化,以後不再進行初始化,而局部變量沒次調用函數都會被初始化。
  • 靜態局部變量一般在聲明處被初始化,如果沒有顯示初始化,會被程序自動初始化爲0,局部變量不會被初始化。
  • 靜態局部變量始終駐留在全局數據區,直到程序運行結束,但是其作用域爲局部作用域,函數體外面不能使用。

二、靜態全局變量

  • 靜態全局變量不能直接被其他文件所用,全局變量可以;
  • 其他文件可以定義相同名字的變量,不會發生衝突,因爲static隔離了文件

三、靜態函數

  • 靜態函數不能被其他文件所用
  • 其他文件可以定義相同的函數,不會發生衝突

四、類靜態成員

類的靜態成員變量

  • 無論類有多少個對象,靜態成員只有一個副本。
  • 如果不存在初始化語句,那在創建第一個對象的時候,靜態成員數據被初始化爲0。
  • 可以在外部通過範圍解析運算符::來重新聲明靜態變量從而對它進行初始化。

類的靜態成員函數

  • 目的是把函數與類的對象獨立開來,在對象不存在的情況下也可以被調用,類名+::即可。
  • 只能訪問靜態成員數據、靜態成員函數和類外部的其他函數。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章