[Lang] 静态变量
1. 静态局部变量
生命周期:程序运行期间
作用域:函数内部
静态局部变量只初始化一次
#include<iostream>
using namespace std;
void exampleFunction() {
static int counter = 0; // 静态局部变量只初始化一次
counter++;
cout << counter << " ";
}
int main() {
for (int i = 0; i < 5; i++) {
exampleFunction();
}
cout << endl;
return 0;
}
[Running] cd "d:\CppDev\Lang\static\" && g++ test1.cpp -o test1 && "d:\CppDev\Lang\static\"test1
1 2 3 4 5
[Done] exited with code=0 in 0.388 seconds
2. 静态成员变量
生命周期:程序运行期间
作用域:可以通过类名直接访问,也可以通过类的对象访问,且在所有对象之间共享
静态成员变量必须在类外初始化
#include<iostream>
using namespace std;
class MyClass{
public:
static int count;
MyClass() {
count++;
}
};
// 静态成员变量必须在类外初始化
int MyClass::count = 0;
int main() {
MyClass obj1, obj2, obj3;
cout << "Number of objects created: " << MyClass::count << endl;
return 0;
}
[Running] cd "d:\CppDev\Lang\static\" && g++ test2.cpp -o test2 && "d:\CppDev\Lang\static\"test2
Number of objects created: 3
[Done] exited with code=0 in 0.43 seconds
3. 静态全局变量
生命周期:程序运行期间
作用域:本文件
static int globalVar = 0; // 静态全局变量
标签:Lang,变量,静态,int,static,MyClass,CppDev
From: https://www.cnblogs.com/yaoguyuan/p/18354071