首頁  >  文章  >  後端開發  >  c++中static關鍵字的作用是什麼?

c++中static關鍵字的作用是什麼?

烟雨青岚
烟雨青岚原創
2020-07-16 15:14:457903瀏覽

作用是:1、修飾函數的局部變數;2、修飾全域函數與全域變數;3、修飾類別裡面的成員變數;4、修飾類別的成員函數。

c++中static關鍵字的作用是什麼?

static作用:

#1、修飾函數的局部變數:

特點:有預設值0,只執行一次,運行一開始就開闢了內存,內存放在全域

2、修飾全域函數和全域變數:

#特點:只能在本原始檔使用

3、修飾類別裡面的成員變數:

特點:和1差不多,定義多個static y,但只有一個y,不進入類別的大小計算,不依賴類別物件的存在而存在(可直接調用,要進行外置聲明)

4、修飾類別的成員函數:

特點:f():括號裡無this指針,只能呼叫他的本類靜態函數和他的靜態變量,即是用static修飾過的不依賴於類對象的存在而存在(可不進行外置聲明,直接呼叫)

c++中static關鍵字的作用是什麼?

#擴充資料:

static的主要使用:

1、static方法

static方法一般稱為靜態方法,由於靜態方法不依賴任何物件就可以進行訪問,因此對於靜態方法來說,是沒有this的,因為它不依附於任何對象,既然都沒有對象,就談不上this了。而由於這個特性,在靜態方法中不能存取類別的非靜態成員變數和非靜態成員方法,因為非靜態成員方法/變數都是必須依賴特定的物件才能夠被呼叫。

但是要注意的是,雖然在靜態方法中不能存取非靜態成員方法和非靜態成員變量,但是在非靜態成員方法中是可以存取靜態成員方法/變數的。

2、static變數

static變數也稱為靜態變量,靜態變數和非靜態變數的差異是:靜態變數被所有的物件共享,在記憶體中只有一個副本,它當且僅當在類別初次載入時會被初始化。

而非靜態變數是物件所擁有的,在創建物件的時候被初始化,存在多個副本,各個物件擁有的副本互不影響。 static成員變數的初始化順序依照定義的順序進行初始化。

3、static程式碼區塊

static關鍵字還有一個比較關鍵的功能就是 用來形成靜態程式碼區塊以最佳化程式效能。 static區塊可以置於類別中的任何地方,類別中可以有多個static區塊。

在類別初次載入的時候,會按照static區塊的順序來執行每個static區塊,只會執行一次。為什麼說static塊可以用來最佳化程式效能,是因為它的特性:只會在類別載入的時候執行一次。

推薦教學:《C語言教學

以上是c++中static關鍵字的作用是什麼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn