以下代码中究竟发生了什么。
#include<iostream.h>
class Demo
{
public :
Demo()
{
cout<<"\nIn Demo const";
}
~Demo()
{
cout<<"\nin demo dest";
}
};
void main() {
Demo();
}
Demo()
只是调用构造函数和析构函数。是否在此过程中创建了对象?那么是分配了内存吗?
答案 0 :(得分:19)
您没有显式调用构造函数,而是此代码创建一个类型为Demo
的临时未命名对象,该对象在;
之后立即销毁。
是的,为此临时对象分配(自动,在堆栈上)内存,并在;
之后释放(再次自动)。同时,正如预期的那样调用构造函数和析构函数。
答案 1 :(得分:0)
是的,内存已分配但在堆栈上,Demo()
正在创建一个自动销毁的临时对象。