C++是在调用构造函数时分配空间吗?
我们看这段代码:
在C++中,在进入大括号时( ‘{’ )就会分配整个大括号需要的空间!但是,此时并没有调用构造函数。
只有当定义对象时,构造函数才会被调用,如上段程序中,在X x1;
这个语句执行时,会调用class X的构造函数。
然而,当大括号结束时( ‘}’ ),析构函数会被隐式调用。所以我们再看上面的代码,会发现,如果执行goto jump1;
,那么就不会构造对象x1,可是在这个大括号开始的时候为它分配了空间,而在大括号结束时又会调用它的析构函数,编译是通不过的。