在C++中,static關鍵字有多個用法:
在函數內部使用static修飾變量時,表示該變量在函數調用間保持持久性,即其值在函數調用之間保持不變。該變量在首次聲明時被初始化,然后在函數調用之間保持其值。在多個函數調用間共享變量時,可以使用該特性。
在函數外部使用static修飾全局變量時,表示該變量的作用域僅限于當前文件。其他文件無法訪問該變量,即使它們聲明了相同名稱的全局變量。這樣可以避免全局變量命名沖突。
在類中使用static修飾成員變量時,表示該變量被類的所有對象所共享,而不是每個對象擁有自己的副本。這樣的變量也稱為類變量或靜態成員變量。
在類中使用static修飾成員函數時,表示該函數不依賴于任何特定的對象實例,可以直接通過類名來調用。這樣的函數也稱為類函數或靜態成員函數。靜態成員函數不能訪問非靜態成員變量或非靜態成員函數,因為它們不依賴于對象狀態。
總的來說,static關鍵字可以用于控制變量的生命周期和作用域,以及定義類共享的成員變量和成員函數。