在C++中,静态全局变量是在函数或类的外部定义的全局变量,但其生命周期与程序的生命周期相同,而不是仅限于定义它的文件。这意味着在整个程序中,静态全局变量只被初始化一次。在类中使用静态全局变量时,它可以在类的成员函数内部访问,并且对于该类的所有对象都是共享的。
以下是一个简单的示例,演示了如何在类中使用静态全局变量:
#includeclass 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。