析构函数的用法【简单理论讲解】

简介: 析构函数是“反向”的构造函数。它们在对象被撤消(回收)时调用。析构函数的名 称除了最前面的“~”符号外,与类的名称相同。例如,类String的析构函数是~string()。 析构函数通常用于当一个对象不再需要时,完成“消除”功能。

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

目录
相关文章
全局变量初始化顺序探究
全局变量初始化顺序探究
|
2月前
|
编译器 程序员 C语言
【C语言篇】从零带你全面了解函数(包括隐式声明等)(下篇)
⼀般情况下,企业中我们写代码时候,代码可能⽐较多,不会将所有的代码都放在⼀个⽂件中;我们往往会根据程序的功能,将代码拆分放在多个⽂件中。
|
4月前
|
编译器 C++
《Effective C++ 改善程序与设计的55个具体做法》 第二章 构造/析构/赋值运算 笔记
《Effective C++ 改善程序与设计的55个具体做法》 第二章 构造/析构/赋值运算 笔记
|
5月前
|
开发框架 安全 编译器
【C/C++ 深入探讨构函数】C++ 编译器在什么情况下无法生成默认的析构函数?
【C/C++ 深入探讨构函数】C++ 编译器在什么情况下无法生成默认的析构函数?
128 1
|
5月前
|
算法 Serverless 数据安全/隐私保护
【C++ 函数 基本教程 第三篇 】深度解析C++函数类型:探寻全局函数、成员函数与静态函数的奥秘
【C++ 函数 基本教程 第三篇 】深度解析C++函数类型:探寻全局函数、成员函数与静态函数的奥秘
327 1
|
编译器 C++
【C++基础(六)】类和对象(中) --构造,析构函数
【C++基础(六)】类和对象(中) --构造,析构函数
【C++基础(六)】类和对象(中) --构造,析构函数
|
5月前
|
编译器 C++
第九章:C++构造函数和析构函数详解
第九章:C++构造函数和析构函数详解
53 1
|
11月前
|
编译器 C语言 C++
一分钟搞懂什么是this指针(未涉及静态成员和函数)
一分钟搞懂什么是this指针(未涉及静态成员和函数)
|
存储 算法 编译器
【C++技能树】类的六个成员函数Ⅰ --构造、析构、拷贝构造函数
在开始本章内容之前,先浅浅的了解一下this指针的概念.这对理解后面的内容有着很大的帮助.
88 0
何为构造函数
Java构造函数,也叫构造方法,是Java中一种特殊的函数。函数名与对应类名相同,无返回值。
129 0