c++静态对象什么时候初始化
作者:野牛程序员:2023-07-28 14:19:03 C++阅读 2698
在C++中,静态对象在程序运行期间的不同阶段有不同的初始化时机。静态对象是指在全局作用域中声明的静态变量,或者在类中声明为静态成员变量的对象。
静态变量(全局静态对象):全局静态对象在程序启动时就会被初始化。它们在程序开始执行前就分配了内存,并且只会初始化一次。全局静态对象的生命周期从程序开始运行到程序结束。
#include <iostream>
using namespace std;
// 全局静态对象
static int globalStaticVar = 10;
int 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;
}注意:静态局部变量(在函数内部声明为静态的变量)在函数首次被调用时才会进行初始化,且它们的生命周期从其声明处开始到程序结束。静态局部变量是一种特殊的局部变量,只会初始化一次,并且在函数调用之间保持其值。它们的初始化是在第一次进入包含它们的函数时进行的。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C++结构体如何设置默认值?
- 下一篇:c++使用了未初始化的局部变量
