C++关键字static

1.静态成员变量: 当static关键字用于类的成员变量时,意味着这个变量是类的所有实例共享的。无论类实例有多少个,静态成员变量只有一个副本。静态成员变量经常用于存储类的公共数据,如配置选项或计数器。

class MyClass {
public:
    static int count; // 静态成员变量
};

int MyClass::count = 0; // 在类外初始化

 

2.静态成员函数: 静态成员函数属于类本身,而不是类的任何特定实例。因此,它们可以通过类名直接调用,而不需要创建类的实例。静态成员函数可以访问静态成员变量,但它们不能访问非静态成员变量,因为非静态成员变量依赖于具体实例。

class MyClass {
public:
    static void StaticMethod() {
        // 可以访问静态成员,但不能访问非静态成员
    }
};

 通过类名调用: 由于静态成员函数不依赖于对象实例,它们可以通过类名直接调用,如下所示:

MyClass::StaticMethod();

 

3.静态局部变量: 在函数内部声明的静态变量,即使函数调用结束,它们的值也会保留。这意味着静态局部变量在程序的整个生命周期内只被初始化一次,并且每次函数调用都会使用相同的内存空间。

void Function() {
    static int localStaticVar = 0; // 静态局部变量
    localStaticVar++;
}

 

4.静态全局变量: 当static关键字用于全局变量时,它限制了变量的作用域,使其只在定义它的文件内部可见,从而避免了不同文件间的命名冲突。

 
static int globalVar; // 只在当前文件内可见

 

posted @ 2024-08-14 12:20  Q星星  阅读(11)  评论(0编辑  收藏  举报