什么时候存储分配是在C ++中进行的?

时间:2012-05-24 19:30:25

标签: c++ oop constructor storage

class A
{
public:
A() {}
};

A b;     //global variable

void fun(void)
{
A a;
}

int main()
{
fun();
}

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

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

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

1 个答案:

答案 0 :(得分:3)

a是在fun()正文中分配的局部变量。每次调用A时都会实例化fun(),然后在对象超出范围时对其进行去实例化(销毁,析构函数调用) - 在这种情况下是{{1} }返回。

fun()在实例化对象时调用构造函数。

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