10

下面的代码中究竟发生了什么。

#include<iostream.h>

class Demo
{
    public :

    Demo()
    {
        cout<<"\nIn Demo const";
    }
    ~Demo()
    {
        cout<<"\nin demo dest";
    }
};

void main() {
    Demo();
}

Demo()只需调用构造函数和析构函数。在此过程中是否正在创建对象?因此是否分配了内存?

4

2 回答 2

20

您没有显式调用构造函数,而是此代码创建了一个临时未命名的类型为 的对象Demo,该对象在 之后立即被销毁;

是的,为此临时对象分配了内存(自动在堆栈上),并在;. 同时,构造函数和析构函数被调用,正如预期的那样。

于 2013-09-19T10:19:36.147 回答
0

是的,内存已分配但在堆栈上,并且Demo()正在创建一个自动销毁的临时对象。

于 2013-09-19T10:21:31.427 回答