static在cpp中的四种用法
1. 静态局部变量:在函数内部声明的静态变量。即使函数结束,静态局部变量的值也会保留。通常用在需要记住历史信息的情况下。
- 注意:当我们多次调用 count() 函数时,counter 变量的值会累加,而不是每次都从 0 开始。
void count() {
static int counter = 0; // 静态局部变量
counter++;
cout << counter << endl;
}
// 当我们多次调用 count() 函数时,counter 变量的值会累加,而不是每次都从 0 开始。
2. 静态全局变量:在函数外部声明的静态变量。它的作用范围局限于声明它的文件内。通常用于在一个文件内共享信息,但防止其他文件访问。
注意:这个 counter 变量只能在 file1.cpp 中访问,其他的 .cpp 文件是无法访问的
// file1.cpp
static int counter = 0; // 静态全局变量
// 这个 counter 变量只能在 file1.cpp 中访问,其他的 .cpp 文件是无法访问的。
3. 静态成员变量:类中的静态成员变量。它们是类的所有对象共有的。静态成员变量在所有对象中有且只有一个副本。通常用在所有对象需要共享同一个变量的时候。
注意:所有的 MyClass 对象都会共享同一个 counter 变量。
class