总结一下static的用法,加深记忆

1、在C中,static可修饰全局变量、局部变量、函数;而C++中,static可以修饰成员变量和成员函数,静态成员可以实现多个对象实例之间共享,进而实现实例间的通信。

2、static的作用

1)、隐藏:定义为static的变量和函数,其作用域仅限于本文件,而未加限制符,或添加了extern限制符的,则可以被其他文件调用。

2)、记忆:static可以保持内容的持久,只在第一次执行时初始化。

3)、默认初始化的值为0,可以省去初始化这一操作。

    对于C++中,静态成员是多个对象间共享的数据,静态数据成员不会破坏数据隐藏。每个实例的值是一样的,如果其中一个实例修改了该值,其他的实例相应改变。

3、使用:

静态数据成员的初始化最佳位置在类的内部,格式为:

<数据类型>  <类名>::<静态成员名>  = <值>

初始化在类体外进行,不用加static,不需要添加public等访问限制符,需要使用作用域运算符来表明它所属类,静态数据成员是类的成员,而不是对象的成员。

注:静态成员函数不能访问非静态数据成员,也不能调用非静态成员变量。