析构函数是“反向”的构造函数。它们在对象被撤消(回收)时调用。析构函数的名 称除了最前面的“~”符号外,与类的名称相同。例如,类String的析构函数是~string()。 析构函数通常用于当一个对象不再需要时,完成“消除”功能。
    在函数中建立对象之后,这个对象作为局部对象开始生存,直到函数运行到遇见右括号“}”才结束生存,此时调用析构函数。 
    对象的释放发生在以下几种情况,首发自学编程网: 
    ·使用运算符new分配的对象被delete删除。 
    ·一个具有块作用域的本地(自动)对象超出其作用域。 
    ·临时对象的生存期结束。 
    ·程序结束运行。 
    ·使用完全限定名显示调用对象的析构函数。 
    有几条规则约束着析构函数的说明: 
    ·不能接受参量。 
    ·  不能说明有任何返回类型(包括void)。 
    ·不能用return语句返回值。 
    · 不能说明为const、volatile或static,但析构函数可以因说明为const、volatile或static的对象的析构而被调用。 
    ·可以说明为虚拟的。使用虚析构函数,可以撤消对象而不必知道该对象的类型。由于使用虚拟函数机制,程序将调用该对象的正确的析构函数。

析构函数的作用和用法相关推荐

  1. PHP中的常见魔术方法功能作用及用法实例

    这篇文章主要介绍了PHP中的常见魔术方法功能作用及用法实例,本文讲解了构造函数和析构函数__construct()和__desctruct()以及属性重载(Property Overloading)_ ...

  2. C#中using关键字的作用及其用法(转)

    C#中using关键字的作用及其用法 using的用途和使用技巧.     using关键字微软MSDN上解释总共有三种用途:     1.引用命名空间.     2.为命名空间或类型创建别名.    ...

  3. PreTranslateMessage作用和用法

    PreTranslateMessage作用和用法 PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗体的消息都要通过这里,比較经常使用,当 ...

  4. java package作用_java import、package作用与用法

    java import.package作用与用法 有些人写了一阵子Java,可是对於Java 的package 跟import 还是不太了解很多人以為原始码 .java 档案中的import 会让编译 ...

  5. MySQL数据类型中DECIMAL的作用和用法

    在MySQL数据类型中,例如INT,FLOAT,DOUBLE,CHAR,DECIMAL等,它们都有各自的作用,下面我们就主要来介绍一下MySQL数据类型中的DECIMAL类型的作用和用法. 一般赋予浮 ...

  6. php中pre标签,html中pre标签与code标签的作用与用法

    HTML 标签 定义和用法 pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. 标签的一个常见应用就是用来表示计算机的源代码. 可以导致 ...

  7. 、简述global关键字的作用_在C#编程中global关键字的作用及其用法

    在C#编程中,global 是 C# 2.0 中新增的关键字,理论上说,如果代码写得好的话,根本不需要用到它.今天就为大家展示下global关键字的作用及其用法,希望对大家学习C#编程有所帮助. 假设 ...

  8. chrome中Blackbox Script 黑盒脚本作用及用法

    chrome中Blackbox Script 黑盒脚本作用及用法 Blackbox Script功能 每天前端人员在调试代码的时候,都可能会遇到代码调试着会进入第三方库文件,带来很多没必要的调试,不方 ...

  9. virtual析构函数(作用)

    virtual析构函数的作用? . 大家知道,析构函数是为了在对象不被使用之后释放它的资源,虚函数是为了实现多态.那么把析构函数声明为vitual有什么作用呢?请看下面的代码: 1 #include ...

最新文章

  1. python面向对象编程 Object-Oriented
  2. python学习之——利用urllib2抓取网页内容
  3. 转载:关于爱情、伴侣、承诺、人生、
  4. linux系统中使用pycharn,在pycharm中使用linux控制台
  5. springboot拦截了静态资源css,js,jpg,png等
  6. 后台管理系统框架bootstrap中文版
  7. matlab期权定价模型比较,期权定价模型与数值方法(Matlab+Jupyter Notebook)
  8. labview和python混编_将数据从LabView发送到Python并取回
  9. java bufferedinputstream关闭_Java BufferedInputStream close()用法及代码示例
  10. Unable to load class 'org.gradle.api.internal.component.Usage
  11. 诚龙网刻报错_诚龙PXE网刻工具11.5
  12. 区间最值操作与历史最值问题(二)
  13. 服务器监控系统应有哪些功能,公安视频监控系统需要具备哪些功能
  14. 父子盒子边距塌陷之为什么设置margin-top父子盒子会一起移动
  15. Win键失效,Win+L不起作用了
  16. 十点读书:如果你不想工作了,就去这四个地方走走
  17. java面向对象基础
  18. 如何用示波器调试波形
  19. 常用短链接生成工具推荐
  20. matlab中求x的y次幂,Matlab求关于x,y的三元函数的幂的拟合

热门文章

  1. VMware下ubuntu虚拟机和windows创建共享文件夹
  2. 远程员工的设备更新和数据迁移应该如何管理?
  3. JetLinks物联网基础平台-通过第三方MQTT服务接入设备
  4. 华为防火墙ipsec vp*实例配置
  5. orbslam2代码详解之tracking线程——局部地图跟踪
  6. Intellij Idea 将Java项目打包成jar
  7. 大数据分析:王宝强离婚事件到底有多火热!
  8. 趣味程序设计_过桥问题(C语言)
  9. Android 屏幕适配(修改系统字体大小、显示大小、修改分辨率相关适配)
  10. storage size of ‘xxxx‘ isn‘t known