#討論 C/C++ static keyword
國立政治大學
最近剛好複習到static的一些基本用法,依稀記得某次專題寫了一堆static變數,在Demo的時候被老師罵慘,憶起往事又去google了一些相關資料,發現很多人覺得static非常邪惡(evil),一些明顯的缺點像是:
A. 對C++來說,違反OO,無法封裝
B. 生命周期過長,和整個program相同(感覺有點像new完但沒有delete?)
我想問的問題是:
1. static還有什麼缺點或隱憂嗎?
2. static變數和全域變數的差別在哪?看到有人說static變數在哪都可以被改;又有人說把static變數放在函式裡就不會污染函式外的空間。這兩者沒有衝突嗎?
3. static關鍵字(變數、函式、成員函式)有哪些適合使用,不那麼邪惡的情況嗎?
