C++栈对象与堆对象

2014-11-24 13:03:44 · 作者: · 浏览: 0

司徒正美

栈对象相当局部对象,堆对象相当于一种能共享于各函数或语句块的对象。栈对象在语句块执行完就自动销毁,堆对象需要手动销毁。

#include

using namespace std;

struct Object{

//★★★★构造函数和类型同名,没有返回值类型

Object(){

cout <<"这是构造函数"<

}

//析构函数名字为类型名前面加一波浪字符;另外也没有返回值类型。

~Object(){

std::cout << "这是构析函数!" << endl;

}

};

int main(){

//定义一个对象,就相当在其间调用到该对象的构造函数

Object o;

{

Object o1;//用栈对象来测试构析函数,语句块结构时自然会销毁局部变量

Object *o2 = new Object;//定义堆对象

// delete o2;//手动销毁堆对象

}

while(1);

}

销毁堆对象

#include

using namespace std;

struct Object{

//★★★★构造函数和类型同名,没有返回值类型

Object(){

cout <<"这是构造函数"<

}

//析构函数名字为类型名前面加一波浪字符;另外也没有返回值类型。

~Object(){

std::cout << "这是构析函数!" << endl;

}

};

int main(){

//销毁堆对象

Object* o1;

{

o1 = new Object;

}

delete o1;

while(1);

}