跳转到内容

C++ 编程

来自 Wikibooks,开放世界中的开放书籍

静态数据成员

[编辑 | 编辑源代码]

在数据成员中使用 static 修饰符,将导致该成员被所有拥有类的实例以及派生类共享。 要使用静态数据成员,必须将数据成员声明为 static,并在类声明之外、文件作用域中对其进行初始化。

当在类数据成员中使用时,该类的所有实例将共享该变量的一个副本。

class Foo {
public:
  Foo() {
    ++iNumFoos;
    cout << "We have now created " << iNumFoos << " instances of the Foo class\n";
  }
private:
  static int iNumFoos;
};

int Foo::iNumFoos = 0;  // allocate memory for numFoos, and initialize it

int main() {
  Foo f1;
  Foo f2;
  Foo f3;
}

在上面的示例中,静态类变量 numFoos 在 Foo 类的所有三个实例 (f1f2f3) 之间共享,并跟踪 Foo 类被实例化的次数。

华夏公益教科书