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