存储分配何时在C++进行

When does the storage allocation takes place in C++?

本文关键字:C++ 进行 何时 分配 存储      更新时间:2023-10-16
class A
{
public:
A() {}
};
A b;     //global variable
void fun(void)
{
A a;
}
int main()
{
fun();
}

在此代码中,我有 2 个问题(已更新)

  1. 对象 a 的存储何时分配,当 fun() 在 main() 中调用时,即在运行时或在编译时

  2. 对于全局变量 b,何时为其分配存储以及何时调用其构造函数?

a 是分配在 fun() 主体中的局部变量。 每次调用 fun() 时都会实例化A,然后在对象超出范围时将其取消实例化(销毁、析构函数调用)——在本例中是 fun() 返回时。

A 的构造函数在对象实例化时被调用。

这些都不会在编译时发生。