在C++中,静态全局变量在程序启动时初始化,只初始化一次。要初始化静态全局变量,请遵循以下步骤:
- 在变量声明前加上
static
关键字。这将使得变量具有内部链接性,意味着它只在定义它的源文件中可见。 - 在源文件中的函数内部定义变量(可选)。这允许你在一个源文件中为静态全局变量提供初始化值。
- 在变量声明时提供初始化值。这是推荐的初始化方法,因为它可以确保变量在包含该声明的源文件中的任何地方都可以访问。
以下是一个示例:
// my_class.h #ifndef MY_CLASS_H #define MY_CLASS_H class MyClass { public: static int myStaticGlobalVariable; // 声明静态全局变量 }; #endif // MY_CLASS_H
// my_class.cpp #include "my_class.h" // 定义并初始化静态全局变量 int MyClass::myStaticGlobalVariable = 42;
在这个例子中,我们在my_class.h
中声明了一个名为myStaticGlobalVariable
的静态全局变量。然后,在my_class.cpp
文件中定义并初始化它。现在,这个变量在所有包含my_class.h
的源文件中都是可见的,并且只会在程序启动时初始化一次。