静态持续变量
3种链接性:
- 外部链接性 其他文件可访问
- 内部链接性 当前文件可访问
- 无链接性 当前函数或代码块可访问
int global = 100; //外部链接性
static int one_file = 50; //内部链接性
int main(){
...
}
void function1(){
static int count = 0; //无链接性
}
静态持续变量与自动变量相比,寿命更长;
数目在运行期间不变,一直存在,不需要使用栈管理;
无初始化时,默认赋0;
静态类成员变量
//stringbad.h
class StringBad{
private:
static int num_strings; // 静态类成员变量
...
}
//stringbad.cpp
#include "stringbad.h"
int StringBad::num_strings = 0; // 初始化静态类成员变量
...
注意: 不能在类声明中初始化静态成员变量,因为声明描述了如何分配内存,但并不分配内存.
C++11 constexpr 创建常量表达式