📜  C++ |静态关键字|问题2(1)

📅  最后修改于: 2023-12-03 14:39:54.268000             🧑  作者: Mango

C++ | 静态关键字 | 问题2

在 C++ 中,static 是一个关键字,可以用于修饰变量、函数和类。它有以下几个不同的用法:

1. 修饰全局变量和函数
  • static 修饰全局变量时,该变量的作用域被限制在当前文件中,其他文件无法直接访问该变量。该变量只会被初始化一次,并且在整个程序的生命周期中保持其值不变。
  • static 修饰全局函数时,该函数的作用域也被限制在当前文件中,其他文件无法直接调用该函数。

以下是示例代码:

// file1.cpp
static int globalVariable = 10;

static void globalFunction() {
    // 函数的实现
}
2. 修饰类成员变量和函数
  • static 修饰类的成员变量时,该变量属于类本身而不是类的实例。它不依赖于任何特定的对象,可以被所有类的实例共享。该变量只会被初始化一次,并且在整个程序的生命周期中保持其值不变。
  • static 修饰类的成员函数时,该函数属于类本身而不是类的实例。它可以在不创建类的实例的情况下被调用。

以下是示例代码:

class MyClass {
public:
    static int staticVariable;
    static void staticFunction() {
        // 函数的实现
    }
};

int MyClass::staticVariable = 20;
3. 静态局部变量

在函数内部,使用 static 修饰的局部变量称为静态局部变量。该变量在第一次初始化后,在函数的每次调用中都会保留其值,不会被销毁和重新初始化。静态局部变量的作用域仅限于定义它的函数内部。

以下是示例代码:

void myFunction() {
    static int staticLocalVariable = 30;
    // 变量的使用
}

以上就是关于 C++ 中 static 关键字的用法介绍。它可以用于修饰全局变量和函数,类的成员变量和函数,以及局部变量。使用 static 关键字可以实现数据共享、限制作用域以及保持变量的持久性。