c++ static關鍵字

static作用

  1. 隱藏。 加了static的全局變量或函數,其他文件不能調用。static函數也不能被其他文件調用。
  2. 持久。 全局生存期。static修飾的靜態局部變量只執行初始化一次,而且延長了局部變量的生命週期,直到程序運行結束以後才釋放。static局部變量只能在該函數中使用,退出函數還存在,但不能使用。
  3. 默認初始化爲0,不用初始化了
  4. (持久)不想被釋放的時候,可以使用static修飾。比如修飾函數中存放在棧空間的數組。如果不想讓這個數組在函數調用結束釋放可以使用 static 修飾。

類的static成員函數。可以用類的對象訪問,static僅能訪問類的static變量或函數。但是非static的成員函數可以調用static函數。

類中的static函數或者變量。類的靜態成員函數是屬於整個類而非類的對象,所以它沒有this指針,這就導致 了它僅能訪問類的靜態數據和靜態成員函數。

按修飾類型分:
1.全局靜態變量。在程序運行期間一直存在,默認初始化爲0,其他文件不可見。
2.局部靜態變量。局部作用域,局部靜態變量離開作用域後,沒有銷燬,而是駐留在內存中。不能訪問知道再次調用該函數,值仍不變。默認初始化爲0。
3.靜態函數。其它文件不可見,只能在本cpp中使用,而且不會和其他(非static)同名函數衝突。
4.類的靜態成員。類靜態成員是所有類的對象共享的。
4.類的靜態函數。類的靜態成員函數和靜態成員一樣,都是類的靜態成員,都不是對象成員。對靜態成員的引用不需要用對象名。靜態成員函數只能使用類的靜態成員,不能使用非靜態成員。 類的靜態函數想要使用非static變量,可以(在類外)使用對象來使用

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章