由于每次死记硬背都记不下来static的作用,所以我打算理解之后再记忆。
原链接:https://www.cnblogs.com/songdanzju/p/7422380.html
1.隐藏,所有未加static前缀的全局变量和函数都具有全局可见性。
2.保持变量内容持久(改变记忆功能和全局声明周期)
唯一一次初始化。
局部变量静态之后:改变了生命周期,整个源程序。
全局变量静态之后:改变了作用域,定义盖变量的函数之外不可见,限制了作用范围。
3.初始化为0
4.静态类成员
(1)类的静态成员函数属于整个类而不属于类的对象,因此没有this指针,导致了只能访问类的静态数据和静态成员函数。
(2)static和virtual不能兼容
(3)静态数据成员是静态存储的,因此必须初始化。
初始化方式:
在类外进行,不加static,和一般静态变量和对象区别。
不加成员的访问权限控制符,private,public。
使用作用域运算符表明它所属的类。
格式:<数据类型><类名>::<静态数据成员名>=<值>
(4)防止父类的影响,在子类定义一个与父类相同的静态变量,屏蔽父类的影响。