static 與類
不會被反覆初始化
將變量的作用域限定在某一個源文件中static 與類將變量的作用域限定在某一個源文件中
class Demo { public: static int num;//不屬於對象的,屬於類的,所有的對象都會共用一個,不計算空間 int other;//屬於對象 static bool IsOdd(int nums); int GetNum() { return _num;//非靜態方法可以訪問靜態成員, 語法上沒問題,不推薦 } private: int _num; }; //static // 成員變量 // 1.被對象共享的,但是他是不屬於對象的 // 2.類名直接訪問 // 成員函數 // 1.沒有this指針 (無法訪問非靜態成員,變量和函數) bool Demo::IsOdd(int nums)//沒有this指針,沒有對象屬性的 { //_num = 2;//不能訪問非靜態成員 return nums % 2; } int Demo::num = 100;//靜態變量在外部初始化 //單例模式 計數器 //無法初始化 //獲取一個對象 class Counter { public: static Counter& GetInstance() { static Counter demo;//只會初始化一次 return demo; } ~Counter() { } private: Counter(){} Counter(const Counter&) {} Counter& operator=(const Counter&other) {} }; int main () { return 0; }