在C++中,静态全局变量是在函数或类的外部定义的全局变量,但其生命周期与程序的生命周期相同,而不是仅限于定义它的文件。这意味着在整个程序中,静态全局变量只被初始化一次。在类中使用静态全局变量时,它可以在类的成员函数内部访问,并且对于该类的所有对象都是共享的。
以下是一个简单的示例,演示了如何在类中使用静态全局变量:
#include <iostream>
class MyClass {
public:
void printStaticGlobalVariable() {
std::cout << "Static global variable value: " << static_global_variable << std::endl;
}
};
// 定义静态全局变量
static int static_global_variable = 10;
int main() {
MyClass obj1;
MyClass obj2;
obj1.printStaticGlobalVariable(); // 输出: Static global variable value: 10
obj2.printStaticGlobalVariable(); // 输出: Static global variable value: 10
return 0;
}
在这个例子中,我们定义了一个名为MyClass
的类,其中包含一个成员函数printStaticGlobalVariable()
,用于打印静态全局变量static_global_variable
的值。静态全局变量static_global_variable
在类外部定义,并在整个程序中只被初始化一次。在main()
函数中,我们创建了两个MyClass
对象,并分别调用它们的printStaticGlobalVariable()
成员函数。由于静态全局变量是共享的,因此两个对象打印的值都是10。