[Lang] 静态变量

[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; // 静态全局变量
posted @ 2024-08-11 22:55  yaoguyuan  阅读(21)  评论(0)    收藏  举报