C/C++ static修飾詞
Rain
May 22, 2023
static修飾詞在修飾不同的對象和位置時,各有不同的作用,以下分成三大類使用:
修飾時機1: 函式top
- static若修飾函式內的變數,則該變數的生命週期與程式相同。這與一般函式內宣告的變數有所不同,函數內的變數只要函式執行完成後,就會隨即消逝。而static修飾的變數會一直存在到程式結束為止,這意味著函式每次運算該變數都是同一個。
- static若修飾函式本身,則該函式只有在同一份來源檔裡能被呼叫,其他的來源檔儘管引用了標頭檔也無法呼叫此函式。
修飾時機2: 全域top
- static若修飾全域變數,則該變數只有同一份來源檔能夠存取,其他的來源檔的程式碼或函式都無法存取該變數。
- static若修飾函式,同上函式環節說明。
修飾時機3: 類別top
- static若修飾類別中的變數,代表所有該類的實體都共用此變數。
- static若修飾類別中的函式,代表該函式已實體化於該類中,因此不需要有類別實體即可直接呼叫該函式,如下語法:
main.cpp:
class computer {
public:
static void compute() {
...
}
};
int main() {
computer::compute();
return 0;
}
Last updated: