C++ static
什么是static,用来干什么的,解决什么问题
c/c++的修饰符,控制变量的存储方式和可见性。函数内部定义的变量,执行到的时候为它在栈上分配空间,函数结束后释放,如果要保留这个值到下次调用的时候,就需要加static。如果用全局变量,会破坏变量访问范围。
如何控制存储方式
全局(静态)存储区:分为DATA和BSS(Block started by symbol)段,DATA段存放初始化的全局变量和静态变量,BSS段存放未初始化的全局变量。
静态数据成员要在程序一开始运行时就必须存在。因为函数在程序运行中被调用,所以静态数据成员不能在任何函数内分配空间和初始化。所以,也不能在类内初始化为一个值,必须在类外初始化。
如何分配空间
在类的外部接口的头文件,或者main函数之前。int Point::m_nPointCount;
这样就可以。
static可以用在哪,以及作用
修饰局部变量
只初始化一次,延长生命周期。
修饰全局变量
限定只能本文件内访问。修饰函数
限定只能本文件内访问。
全局变量和全局静态变量的区别
不显式用static修饰的变量作用域是整个工程,可以被外部文件用extern访问。
如何使用static变量和static方法
通过类名.变量/方法
来访问,不需要new一个类。或者类名::静态成员名
。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!