Static的用法和作用
1.隐藏(static函数和static变量均可):当同时编译多个文件时,所有未加static的全局变量和函数具有全局可见性。
2.保持内存变量的持久:静态数据存储在静态存储区域,在程序刚开始时完成初始化,也是唯一一次初始化。有两种变量在静态区域存储,全局变量和static变量,和全局变量比起来,static变量可以控制可见范围。
3.静态变量默认初始化为0:全局变量也具有这个属性,因为全局变量也存储在静态数据区域,在静态数据区域所有默认字节为0x00。
4.C++中的类成员声名为static
(1).函数体内static变量的作用范围时函数体内,变量只被声名一次,其值在下次调用时维持上次的值。
(2).在模块内的静态全局变量,可被模块内所有函数访问,但不能被模块外其他函数访问。
(3).在模块内的静态函数,只可被模块内的其他函数访问,这个函数被限制在声名他的模块内。
(4).在类中的静态成员变量,属于整个类所拥有,对类的所有对象只有一份拷贝。
(5).在类中的静态成员函数,属于整个类所拥有,这个函数不能接收this指针,因而只能访问类的静态成员变量。
5.C++中类内static
(1).static 类修饰的变量必须在类外进行初始化,static修饰的变量先于对象存在,所以static修饰的变量在类外进行初始化。
(2).static修饰的类成员属于类,而不属于对象,因此static成员函数没有this指针。
(3).static修饰的类成员函数不能被virtual修饰,因为staitic不属于任何对象或实例。