static的做用c++
不考慮類,static的做用主要有三個:程序員
1.第一個做用,隱藏函數
當同時編譯多個文件時,全部未加static前綴的全局變量和函數都具備全局可見性,假設有文件test1.cpp,main.cpp,this
test1.cpp文件爲spa
int a=23;指針
void getm()對象
{get
cout<<"wodingdong"<<endl;編譯
}求職
那麼在這裏,test1.cpp的變量a和函數getm()在main.cpp等其餘文件能夠訪問中可以訪問,如果加上static,就會對其餘的文件隱藏,因此利用這個特性,能夠在不一樣的文件中定義相同的變量和函數名稱,沒必要擔憂命名的衝突。
2,第二個做用,默認初始化爲0,包括未初始化的全局靜態變量與局部靜態變量。
3,第三個做用,保持局部變量內容的持久
函數內的自動(局部)變量,當調用時就存在,退出時就消失,但局部變量雖然在函數內定義,但靜態局部變量始終存在着,也就是說它的生存週期爲整個源程序,其特色是隻進行一次初始化且具備「記憶性」
類中stati的做用:
c++重用了static個關鍵字,並賦予它與前面不一樣的含義,表示一個類而不是屬於此類的任何特定對象的變量和函數
靜態數據成員
在類內數據成員的聲明加上關鍵字static,該數據成員就是類內的靜態數據成員
static數據成員必須在類定義體的外部定義
靜態成員函數
靜態成員函數和靜態數據成員同樣,都是類的內部實現,屬於類定義的一部分,它爲類服務面不是爲了某一個具體的對象服務,
由於普通成員函數老是具體的屬於某個類的具體對象,因此普通的成員函數通常都隱含了一個this指針, this指針指向類的對象自己
參考了《王道-程序員求職寶典》