析构函数怎么现实调用啊

来源:百度知道 编辑:UC知道 时间:2024/06/05 18:18:20

析构函数不需要你去直接调用,任何对象(类的实例)被删除之后,系统都会自动调用析构函数。

一般的,如果你用new创建对象,那么在delete的时候,会调用对象的析构函数。如果对象是全局变量或者局部自动变量,则在这个变量的生存期结束的时候调用析构函数,比如局部自动变量是在函数返回的时候被删除,这个时候会调用析构函数。

系统自动调用。

在C#中的话,析构函数是正常是无法确切的知道何时调用的,因为在.NET Runtime中,你只能掌管对象的生 (class MyClass=new class();)
但你无法掌握对象的死,也就是说你不能想让它释放内存中占用的资源就让它消失,对象的死是由天住定的(C#的垃圾回收站),垃圾回收站自己有自己的一套算法,比如用户的内存严重不足时,垃圾回收站就会自动启动,来回收那些已经没有被参考到的对象 所占用的内存资源

你可以通过 强制垃圾回收站启动来达到回收 对象所站用的资源,对象被回收前的一刻,会执行析够函数,但无法遇见 多个对象的析够函数的执行先后顺序,它们执行的顺序是无法遇见的,所以你的代码也许并不能达到你所预期的效果

我看了很的书上的 建议是 析够函数不建议使用,但你若想给对象一个死的机会,那你就写析够函数,然后强制启动垃圾回收站吧

析构函数的作用是回收垃圾,所以当你的NEW的变量超出作用域的时候编译环境就自动调用 CONSTRUCTOR
构造函数(constructor)是一种特殊的成员函数,它提供了对成员变量进行初始化的方法,使得在声明时能自动地初始化对象.因为当程序创建一个对象时,系统会自动调用该对象所属类的构造函数.
析构函数(destructor)也是一种成员函数,但它的作用与构造函数相反,用来在系统释放对象前做一些清理工作,如利用delete运算符释放临时分配的内存,清零某些内存单元等.当一个对象生存期结束时,系统会自动调用该对象所属类的析构函数;
构造函数的名称与类名相同,而析构函数的名称必须在类名前加上"~"符号;注意,构造函数和析构函数不能指定任何返回值类型,包括void返回类型;
例如:
#include<iostre