在C++中,静态对象在程序运行期间的不同阶段有不同的初始化时机。静态对象是指在全局作用域中声明的静态变量,或者在类中声明为静态成员变量的对象。
静态变量(全局静态对象):全局静态对象在程序启动时就会被初始化。它们在程序开始执行前就分配了内存,并且只会初始化一次。全局静态对象的生命周期从程序开始运行到程序结束。
#include <iostream> using namespace std; // 全局静态对象 static int globalStaticVar = 10; int&2024澳门特马开码查询185期nbsp;main() { // 在main函数执行之前,全局静态对象已经被初始化 cout << "Global Static Var: " << globalStaticVar << endl; return 0; }
静态成员变量:静态成员变量属于类,它们在程序启动时同样会被初始化。与全局静态对象类似,静态成员变量也只会初始化一次,并且它们的生命周期从程序开始运行到程序结束。
#include <iostream> using namespace std; class MyClass { public: // 静态成员变量 static int staticVar; }; // 静态成员变量的初始化,通常在类外进行 int MyClass::staticVar = 20; int main() { // 在main函数执行之前,静态成员变量已经被初始化 cout << "Static Var: " << MyClass::staticVar << endl; return 0; }
注意:静态局部变量(在函数内部声明为静态的变量)在函数首次被调用时才会进行初始化,且它们的生命周期从其声明处开始到程序结束。静态局部变量是一种特殊的局部变量,只会初始化一次,并且在函数调用之间保持其值。它们的初始化是在第一次进入包含它们的函数时进行的。
评论列表