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; }