C++ 编程
外观
在数据成员中使用 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 类的所有三个实例 (f1、f2 和 f3) 之间共享,并跟踪 Foo 类被实例化的次数。