置頂 static用法

2021-07-05 05:05:08 字數 857 閱讀 3574

static的使用

static函式在實現的時候也不需要static的修飾,因為static是宣告性關鍵字

不在類中

static變數:該變數僅在本cpp檔案中有效

static函式:該函式僅在本cpp檔案中有效

在類中

static變數:是所有該類物件的例項共有的,僅有一次初始化,為物件們共有

static函式:僅能訪問該類中其他同樣是靜態成員變數

訪問方式:

可以是類的例項物件,也可以是通過類名(不需要例項化)

什麼時候使用static

對於普通變數

更傾向於設定為非static,因為static的類變數是全域性變數,全域性變數的弊端大家應該都了解。常見的乙個程式設計錯誤就是錯誤地是用來了static變數,結果幾個例項物件相互影響導致錯誤。

對於常量變數

更傾向於採用static的方式,再加上const、final修飾。因為空間和時間效率都更高,因為不需要構造並儲存到每個類例項中。

對於函式

如果能夠採用static(說明沒有訪問到非static的成員變數),則傾向於採用static的方式 ,因為靜態方法的效率高但注意這往往預示著**壞味道。舉個例子,比如我們有乙個業務類,裡面有乙個函式是遞迴刪除檔案。將這個函式設定為static固然是可以,但其實這也表明了這個函式和這個類關係不大,將這個函式抽取到類似fileutil的類裡面會更好。如果乙個函式雖然和類關係不緊密,但是暫時不知道是否有其他類需要呼叫,則可以先設定為類的static函式。日後,如果其他地方需要使用此函式,static函式抽取起來比非static函式要方便。

static用法小結

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...

static用法總結

static static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域...

static用法小結

static關鍵字是c,c 中都存在的關鍵字,它主要有三種使用方式,其中前兩種只指在c語言中使用,第三種在c 中使用 c,c 中具體細微操作不盡相同,本文以c 為準 1 區域性靜態變數 2 外部靜態變數 函式 3 靜態資料成員 成員函式 下面就這三種使用方式及注意事項分別說明 一 區域性靜態變數 在...