1. 程式人生 > >C++常見面試題(三)-static總結

C++常見面試題(三)-static總結

1、不考慮類

1)隱藏

當同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性。例如,同時編譯兩個原始檔a.cpp和main.cpp。如果,在一個檔案中的變數或函式加了static就會對其他檔案不可見。

2)預設初始化為0

包括未初始化的全域性靜態變數和區域性靜態變數

3)保持區域性變數的內容持久

靜態區域性變數的生存期為整個源程式,但是其作用域仍與區域性變數相同。

2、類中的static的作用

靜態資料成員也是儲存在全域性(靜態)儲存區。靜態資料成員定義時要分配空間,所以不能在類宣告中定義。static資料成員必須在類定義體的外部定義。

靜態成員函式無法訪問屬於類物件的非靜態成員,也無法訪問非靜態成員函式,只能呼叫其他的靜態成員函式與訪問靜態資料成員。