C++ static 关键字

定义和用法

static 关键字是一个修饰符,它使属性或方法属于类本身,而不是类的实例。该属性或方法在所有类的实例之间共享。

static 关键字还有另一个用途。它允许函数内部的变量在多次函数调用之间保持其值,如下例所示。

实例

例子 1

静态属性的值在类的实例之间共享:

class MyClass {
  public:
    static int x;
    int y;
    int sum() {
      return x + y;
    }
};

int MyClass::x = 5;

int main() {
  MyClass myObj1;
  myObj1.y = 3;
  MyClass myObj2;
  myObj2.y = 5;
  
  cout << myObj1.sum() << "\n";
  cout << myObj2.sum() << "\n";
  
  return 0;
}

亲自试一试

例子 2

static 关键字允许变量在函数结束后保持其值:

int add(int myNumber) {
  static int total = 0;
  total += myNumber;
  return total;
}

int main() {
  cout << add(5) << "\n";
  cout << add(2) << "\n";
  cout << add(4) << "\n";
  cout << add(9) << "\n";
  return 0;
}

亲自试一试