C++中关键字static的作用
1、定义局部静态变量,存放在全局数据区的静态变量区。初始化的时候自动初始化为0; 其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。
2、static定义全局变量的时候,这个全局变量只能在本文件中访问,不能在其它文件中访问,即便是extern外部声明也不可以。
3、static定义一个函数,则这个函数的只能在本文件中调用,不能被其他文件调用。
(1)不想被释放的时候,可以使用static修饰。比如修饰函数中存放在栈空间的数组。如果不想让这个数组在函数调用结束释放可以使用static修饰
(2)考虑到数据安全性(当程想要使用全局变量的时候应该先考虑使用static)
4、 定义静态数据成员,有如下特点:
(1)内存分配:在程序的全局数据区分配
(2) 初始化和定义:静态数据成员定义时要分配空间,所以不能在类声明中定义
5、定义静态成员函数。
静态成员函数与类相联系,不与类的对象相联系。静态成员函数不能访问非静态数据成员。