static小结

1、隐藏:编译多个文件时,所有未加static的全局变量、全局函数都具有全局可见性。

              如果加了static,就会对其他源文件隐藏,利用这一特性可以在不同文件中定义相同的

        变量名或函数名,而不用担心冲突(可通过include相关文件引用static变量)。

2、记忆功能和全局生存期:

     静态变量和全局变量存储在静态数据区,程序刚开始运行时初始化,也是唯一的一次初始化。

3、static变量默认初始化为0(全局变量同)

4、类成员声明为static静态成员必须初始化,且通常初始化在类外进行(在类内进行时,将其声明为constexper);

5、静态成员能用于某些场景,而普通成员不能(参考C++ primer P271):

     (1)静态成员可以是不完全类型,特别的,静态数据成员的类型可以就是它所属的类类型,而非静态数据成员只能

声明为它所属类的指针或引用。

     (2)可以使用静态成员成为默认实参,非静态成员不能成为默认实参,因为它的值本身属于对象的一部分。

posted @ 2016-09-21 09:13  牧马人夏峥  阅读(137)  评论(0编辑  收藏  举报