商讯信箱
用户名: @
密  码:   注册|忘记密码
登录
个人用户经销商
您的位置:首页 > 技术频道 > 正文

  九、析构函数

  Perl跟踪对象的链接数目,当某对象的最后一个应用释放到内存池时,该对象就自动销毁。对象的析构发生在代码停止后,脚本将要结束时。对于全局变量而言,析构发生在最后一行代码运行之后。

  如果你想在对象被释放之前获取控制权,可以定义DESTROY()方法。DESTROY()在对象将释放前被调用,使你可以做一些清理工作。DESTROY()函数不自动调用其它DESTROY()函数,Perl不做内置的析构工作。如果构造函数从基类多次bless,DESTROY()可能需要调用其它类的DESTROY()函数。当一个对象被释放时,其内含的所有对象引用自动释放、销毁。

  一般来说,不需要定义DESTROY()函数,如果需要,其形式如下:

  sub DESTROY {   #   # Add code here.   #   }

  因为多种目的,Perl使用了简单的、基于引用的垃圾回收系统。任何对象的引用数目必须大于零,否则该对象的内存就被释放。当程序退出时,Perl的一个彻底的查找并销毁函数进行垃圾回收,进程中的一切被简单地删除。在UNIX类的系统中,这像是多余的,但在内嵌式系统或多线程环境中这确实很必要。

 

1 2 3 4 5 6 7 8 9 10 11 12
【内容导航】
第1页: 模块简介 第2页: Perl中的类
第3页: 创建类 第4页: 构造函数
第5页: 方法 第6页: 方法的输出
第7页: 方法的调用 第8页: 重载
第9页: 析构函数 第10页: 继承
第11页: 子类方法的重载 第12页: Perl类和对象的一些注释
©版权所有。未经许可,不得转载。
[责任编辑:cynthia]
[an error occurred while processing this directive]