C++ 中的static关键字
1.静态变量
分为两种情况:静态全局变量和静态局部变量
- 在函数外被声明时,它就成为了一个 静态全局变量, 只对定义它的这个源文件有效,而不能被其他文件访问。
- 在函数(代码块)内部被声明,成为 静态局部变量 时, 它便可以在程序的整个生命周期中存在,但只能在其作用域内被访问。它只在定义时被初始化一次(未初始化默认为0),之后再被调用都会使用上次调用后的值。即保持了内容的记忆性。
2.静态函数
- 当一个函数声明前加上static时,它便成为所处这个文件的私有函数。同一项目中的其他文件无法调用它。这可以很好的解决不同文件中同名函数冲突的问题。
3.类的静态成员变量
- 静态成员变量归这个类所有, 不属于任何实例化的对象。这使得它需要单独在类外进行初始化、分配空间,且只会产生一个。可以通过类名或对象名访问它, 所有对象都会指向同一个静态变量。
4.类的静态成员函数
- 同样只归类所有,不属于任何对象,即,它没有用于指向对象的this指针。静态函数只能调用静态成员,而非静态函数可以调用任何成员。