编程论坛
注册
登录
编程论坛
→
C++教室
关于析构函数的调用
jim1024amw
发布于 2008-09-24 18:52, 1620 次点击
今天刚学构造函数和析构函数,但对于析构函数何时调用还是不太懂.请各位兄弟帮帮忙.还有析构函数到底有什么用啊?
10 回复
#2
守鹤
2008-09-24 18:59
析构函数是类对象调用结束前,系统会自动调用析构函数。
析构函数 主要是对类对象所占空间的处理,例空间的分配,内存的释放等。
#3
江湖未冷
2008-09-24 20:16
释放内存
#4
jim1024amw
2008-09-24 20:50
二楼说是"类对象调用结束前" .那是不是只发生在main()函数中,能不能具体一些.谢谢.
#5
一眼的笑意
2008-09-25 16:56
对象结束生命期或使用delete时一般会调用析构函数,在派生类中会先调用派生类然后调用基类的
#6
守鹤
2008-09-25 19:33
回复 4# jim1024amw 的帖子
不一定发生在main 函数中,只要有类对象的使用,并且该对像调用结束前,就会调用析构函数
#7
bibingyan
2008-09-26 19:00
当定义的对象超出作用域的范围或使用了delete删除对象时,都会调用析构函数 进行对象的释放
#8
ciappcia
2008-09-26 20:43
对象结束生命期结束的时候
#9
小侠115
2008-09-26 20:52
不太懂
#10
zzt_428
2008-09-30 10:53
就是对象死亡的时候调用析构函数是为了释放占用的内存,供以后继续使用.
我举几个常见的例子吧:
你定义了一个局部对象,当这个局部对象作用域结束的时候,也就是遇到所在代码块的"}"的时候会调用析构函数.
你使用new 产生一个对象,然后使用delete把它删除的时候,也会调用.
生成临时对象的时候,也会调用.
#11
newyj
2008-09-30 20:22
#include<iostream>
using namespace std;
class newcla
{
public:
newcla(){cout<<"begin new class newcla!"<<endl;};
~newcla(){cout<<"Be over!"<<endl;}
};
int main()
{
cout<<".............."<<endl;
{
newcla var;
}
cout<<".............."<<endl;
return 0;
}
举个简单的例子
1