C++ static
static 静态关键字,static 在应用到类里,其用法需深究一下。
- static基本概
- 存在于静态存储区,在程序运行时一直存在,随程序运行完毕而消失。
- 全局静态变量
- 作用域存在于它所在的整张源文件里。从定义开始,到文件结束。
- 局部静态变量
- 作用域存在于定义它的局部语句块中,但是它并没有随局部语句块销毁。一直存在于内存中,但不能访问它。只有再次调用语句块才能访问。
- static 成员变量
- 静态成员变量是一种类生成的所有对象所共享的,它不是被单个对象所独占。
- 初始化时不能在类中初始化,因为它属于类,而不属于单个对象。
- 它可以被对象和类名调用
- static 成员函数
- 静态成员函数不能访问非静态成员变量,原因时它属于类,而不属于对象,假如可以访问的话,那请问访问的是谁的成员变量,是对象a还是b。
- 实现成员函数可以在类里实现,也可以在类外实现 。我觉得这是个bug,我觉得最好按照静态成员变量那样编写。
- 它可以被类名和对象调用。