1、static关键字
- 静态变量和全局变量都存于静态存储区域中
- 对对象的作用域进行限制,对当前的编译单元有效
- 类中的静态变量的定义必须和声明分开
- 静态方法只能访问静态成员或者调用静态方法
- 静态的常量内部类型的定义可以使用内联
- 静态常量数组或者对象定义必须遵照静态定义
2、extern关键字:表示变量在编译单元外部声明过
3、namespace名字空间限制名字作用域,多个名字空间的声明必须注意名字冲突
4、静态成员初始化依赖性:
如: extern int y;
int x=y+1;//如果y的定义单元在当前编译单元之后调用,则会产生问题
两种解决办法:
- 利用Initializer类的静态实例来初始化静态成员变量,第一个包含头文件的编译单元完成静态成员变量的初始化
- 利用函数调用,在函数中声明静态成员变量 ,并且通过调用函数初始化静态成员,并返回静态成员。
转载于:https://blog.51cto.com/whithin/143465