【C++】类和对象(四):析构函数
大家好,我是苏貝,本篇博客带大家了解C++的析构函数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
目录
- 1. 概念
- 2. 特性
1. 概念
通过前面构造函数的学习,我们知道一个对象是怎么来的,那一个对象又是怎么没呢的?
析构函数:与构造函数功能相反,析构函数不是完成对对象本身的销毁,局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数,完成对象中资源的清理工作(如我们之前在数据结构实现的顺序表、堆、栈等时写的destroy函数)
2. 特性
析构函数是特殊的成员函数,其特征如下:
- 析构函数名是在类名前加上字符 ~
- 无参数无返回值类型。
- 一个类只能有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。注意:析构函数不能重载 (因为形参只能是无)
- 对象生命周期结束时,C++编译系统自动调用析构函数。
- 编译器自动生成的析构函数,对内置类型的成员变量不做处理,对自定义类型的成员变量调用它的析构函数。
-
如果类中没有申请资源时,析构函数可以不写,直接使用编译器生成的默认析构函数,比如 Date类;有资源申请时,一定要写,否则会造成资源泄漏,比如Stack类。
-
先定义的对象先调用构造函数,后定义的对象先调用析构函数
都是局部对象,后定义的先调用析构函数
对象生命周期结束时,编译器自动调用析构函数。局部变量(栈)在main函数结束后,生命周期结束。Main函数里的Static修饰的静态变量在静态区,等main函数将栈上的空间释放后,生命周期结束。
两个静态变量,后定义的先调用析构函数
全局变量也在静态区,后定义的先调用
析构函数的调用顺序总结:
局部对象 -> 局部的静态对象 -> 全局对象/静态对象
好了,那么本篇博客就到此结束了,如果你觉得本篇博客对你有些帮助,可以给个大大的赞👍吗,感谢看到这里,我们下篇博客见❤️
相关文章:
【C++】类和对象(四):析构函数
大家好,我是苏貝,本篇博客带大家了解C的析构函数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 1. 概念2. 特性 1. 概念 通过前面构造函数的学习,我们知道一个对象是怎么来的…...
linux中各目录作用及介绍
目录 1 /usr 1 /usr /usr 是 Unix-like 操作系统中的一个重要目录之一,代表可共享的用户资源(User System Resources)或 Unix Software Resource(UNIX 软件资源)。 /usr 目录通常包含了系统的许多可共享资源…...
v4.7版本使用线下付款方式不给管理员发送新订单通知问题修复
在app/api/controller/v1/order/StoreOrderController.php文件中,将红框内的代码注释,加上绿框的代码即可修复 if ($this->services->setOrderTypePayOffline($order[order_id])) {event(NoticeListener, [$order, admin_pay_success_code]);retur…...
vue3中mitt和pinia的区别和主要用途,是否有可重合的部分?
在 Vue 中,Mitt 和 Pinia 是两个不同的工具,它们的主要用途和功能有所不同,但在某些方面也存在重合的部分。 区别 Mitt: Mitt 是一个简单而强大的事件总线库,用于在组件之间进行事件的发布和订阅。 它提供了一种简洁…...
飞书文档解除复制限制
解除飞书文档没有编辑器权限限制复制功能方法 方法一:使用插件 方法二: 通过调试工具删除所有的copy事件 使用插件 缺点: 只有markdown格式,如果需要其他格式需要再通过Typora等markdown编辑器转pdf,word等格式 安装插件 Cloud Do…...
vue3中ref和reactive的用法,区别和优缺点,以及使用场景
写在前头: reactive定义的数据只能修改里面的属性,不能将整个数据替换,实在要替换请使用 Object.assign(obj1, obj2);举个例子 这种写法无法直接改变obj1 let obj1 reactive({name: 猫,age: 2, });obj1 {name: 猪,age: 2, } 正确的写法…...
电脑技巧:Rufus——最佳USB启动盘制作工具指南
目录 一、功能强大,兼容性广泛 二、界面友好,操作简便 三、快速高效,高度可定制 四、安全可靠,社区活跃 在日常的电脑使用中,无论是为了安装操作系统、修复系统故障还是进行其他需要可引导媒体的任务,拥…...
vue的基本使用
简介 vue组件 三个部分组成:结构、样式、逻辑文本插值 类似于java的spel表达式属性绑定 綁定是单向绑定的,修改输入框无法改变原本的,只能读,不能写 <input :value="name" placeholder="Type your name"><script> export default {name: H…...
C#高级:利用 CancellationToken 实现方法超时控制,提升应用响应性
完整版: using System; using System.Threading; using System.Threading.Tasks;public class Program {public static async Task Main(){var cts new CancellationTokenSource();// 设置超时时间为10秒cts.CancelAfter(TimeSpan.FromSeconds(3));try{var resul…...
Java Lock LockSupport 总结
前言 相关系列 《Java & Lock & 目录》(持续更新)《Java & Lock & LockSupport & 源码》(学习过程/多有漏误/仅作参考/不再更新)《Java & Lock & LockSupport & 总结》(学习总结/最新…...
线性表之链式存储基本操作(c语言实现,附解析)
今天,我来讲一下数据结构链表的基本操作,首先我们要知道链表的基本操作有创建,查找,插入,删除。接下来我们逐一实现操作。 结构体定义 typedef struct Node* List; struct Node{ ElementType Data; List next; };文章…...
27.Redis哨兵架构
Redis哨兵高可用架构 Sentinel(哨兵)是一种特殊的 Redis 服务,其主要功能并非提供常规的读写服务,而是专门用于监控 Redis 实例节点。 1.在哨兵架构下,客户端(client 端)首次会从哨兵处找出 Re…...
BGP路由优选
BGP 的路由优选规则是一套多步决策链,用来确定在多个可行路由中选择最优的路由。BGP 是一种路径向量协议,通过这些优选规则,网络管理员可以控制数据流量的流向,确保网络的稳定性和效率。下面以一个实例来详细说明 BGP 的优选规则及…...
cjson内存泄漏问题注意事项
(1)使用root cJSON_Parse(text); //将字符串转成json格式,函数中申请了一块内存给root 所以在最后要释放root cJSON_Delete(root ); //释放cJSON_Parse()分配出来的内存空间 (2)使用out cJSON_Print(root);(含有cJSON_PrintUnformatted函数&#x…...
雷军救WPS“三次”,WPS注入新生力量,不再“抄袭”微软
救WPS“三次” 1989年,求伯君用128万行代码编写出了WPS1.0,宣告了中国自主办公时代的开启。 那时候,雷军还在武汉大学深造,他早就把求伯君当成了自己的榜样,这一来二去的,雷军和WPS之间也就结下了不解之缘…...
zookeeper全系列学习之分布式锁实现
文章目录 前言一、分布式锁的通用实现思路二、ZK实现分布式锁的思路三、ZK实现分布式锁的编码实现1、核心工具类实现2、测试代码编写线程安全问题复现使用上面封装的ZkLockHelper实现的分布式锁 优点缺点 总结 前言 就像上篇文章zookeeper全系列学习之统一配置获取说的&#x…...
耐用的内衣洗衣机有哪些?双11好用内衣洗衣机品牌排行榜
现代社会高速发展,人们对于生活品质的追求不断提高,内衣作为贴身衣物,其清洁程度直接关系到个人卫生和健康。因此,耐用且高效的内衣洗衣机成为了许多家庭的必需品。在双11购物节期间,众多品牌推出了各种优惠活动&#…...
富格林:曝光可信经验击败陷阱
富格林认为,现货黄金投资是一项收益与风险并存的交易活动。在现货黄金中,时常为投资者曝光总结一些可信的交易经验,能在必要时帮助投资者击败陷阱,同时也会获得较高概率的收益。如今的投资经验和策略是非常多的,以下是…...
3211、生成不含相邻零的二进制字符串-cangjie
题目 3211、生成不含相邻零的二进制字符串 思路 dfs 代码 class Solution {let numRune [r0, r1]func dfs(arr: ArrayList<Rune>, ans: ArrayList<String>,n: Int64):Unit{if(arr.size > n){ans.insert(0, String(arr))// println("insert ${String(…...
【wpf】wpf程序联合控制台测试
如果在wpf的工程里面,想通过控制台输出或者调试,可以点开项目属性,把输出输出类型改为控制台应用输出,这样调试程序时,wpf的界面和控制台界面都会同时打开,而且写的控制台代码都会有效! 设置如…...
使用 Spring Doc 为 Spring REST API 生成 OpenAPI 3.0 文档
Spring Boot 3 整合 springdoc-openapi 概述 springdoc-openapi 是一个用于自动生成 OpenAPI 3.0 文档的库,它支持与 Spring Boot 无缝集成。通过这个库,你可以轻松地生成和展示 RESTful API 的文档,并且可以使用 Swagger UI 或 ReDoc 进行…...
ssm基于ssm框架的滁艺咖啡在线销售系统+vue
系统包含:源码论文 所用技术:SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习,获取源码请私聊我 需要定制请私聊 目 录 第1章 绪论 1 1.1选题动因 1 1.2目的和意义 1 1.3论文结构安排 2 第2章 开发环境与技术 3 2.1 MYSQ…...
微信小程序 - 动画(Animation)执行过程 / 实现过程 / 实现方式
前言 因官方文档描述不清晰,本文主要介绍微信小程序动画 实现过程 / 实现方式。 实现过程 推荐你对照 官方文档 来看本文章,这样更有利于理解。 简单来说,整个动画实现过程就三步: 创建一个动画实例 animation。调用实例的方法来描述动画。最后通过动画实例的 export 方法…...
【Linux】nohup 命令
【Linux】nohup 命令 1. 语法格式2. 实例3. 查找后台进程 nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。 nohup 命令,在默认情况下(非重定向时&#x…...
CSS、Less、Scss
CSS、Less和SCSS都是用于描述网页外观的样式表语言,但它们各自具有不同的特点和功能。以下是对这三者的详细阐述及区别对比: 详细阐述 CSS(Cascading Style Sheets) 定义:CSS是一种用来表现HTML或XML等文件样式的计算机…...
[笔记] ffmpeg docker编译环境搭建
文章目录 环境参考dockerfile 文件步骤常见问题docker 构建镜像出现 INTERNAL_ERROR 失败? 总结 环境 docker 环境 系统centos 7.9 (无所谓了 你用docker编译就无所谓系统了) ffmpeg3.3 参考 https://blog.csdn.net/jiedichina/article/details/71438112 dockerfile 文件 …...
基于SSM的心理咨询管理管理系统(含源码+sql+视频导入教程+文档+PPT)
👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的心理咨询管理管理系统拥有三个角色:学生用户、咨询师、管理员 管理员:学生管理、咨询师管理、文档信息管理、预约信息管理、测试题目管理、测试信息管理…...
南开大学《2023年+2022年810自动控制原理真题》 (完整版)
本文内容,全部选自自动化考研联盟的:《南开大学810自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2023年真题 2022年真题 Part1:2023年2022年完整版真题 2023年真题 2022年真题…...
【算法】Kruskal最小生成树算法
目录 一、最小生成树 二、Kruskal算法求最小生成树 三、代码 一、最小生成树 什么是最小生成树? 对于一个n个节点的带权图,从中选出n-1条边(保持每个节点的联通)构成一棵树(不能带环),使得…...
Pocket通常指的是一种特定的凹形或凹槽
在几何和计算机辅助设计(CAD)中,“Pocket”通常指的是一种特定的凹形或凹槽,用于表示在物体表面上挖出的区域。其主要特点包括: 凹形区域:Pocket 是一个在三维模型中内凹的区域,通常从物体的表面…...
wordpress能做手机站吗/百合seo培训
对于一个只有3、5个人的小团队,在时间很紧的情况下,文档什么的肯定是能省则省啦。不过,有两个文档是绝对不能省的。不但不能省,还要尽全力把它们做好,并且保持更新。这两个文档就是:使用Power Designer制作…...
装修设计网站哪个平台最好/网站查询ip地址查询
前言 从毕业到现在面试也就那么几家公司,单前几次都比较顺利,在面到第三家时都给到了我offer!前面两次找工作,没考虑到以后需要什么,自己的对未来的规划是什么,只要有份工作,工资符合自己的要求…...
如何做企业网站后台管理/网络推广引流
1. 迁移背景介绍目前我们的图数据库数据量为 顶点 20 亿,边 200 亿的规模。在迁移之前我们使用的 AgensGraph 数据库一个主库四个备库,机器的配置都比较高,256G 内存 SSD 的磁盘,单机数据量为 3T左右。在数据量比较小的情况下 Age…...
哪个公司做的网站好/广州seo优化费用
大家好!学习理论知识之后,怎么能没有一些配套的习题呢?这当然是没问题的!这次我们就来做一做配套的习题: 主题:死亡骰(这个字念tou2(投))子 “死亡骰子”是一…...
南宁手机建站公司/淘宝关键词优化技巧教程
点击上方蓝字关注我们1前言曾几何时,”云”还是指天上飘的那一朵朵白色的雾团,现在互联网上家家都说自己是”xx云”。“云”这个词,已经被赋上了新的含义。其实真正在做”云”的企业没几家。这篇文章会告诉大家,究竟什么是”云”&…...
策划网站做营销推广/学校教育培训机构
缓存实现的过程以及淘汰旧页面的机制不同,所以会有不同缓存调度方法,就常见的就是FIFO,LRU,LFU缓存过期策略。 1.FIFO(First In First out):先见先出,淘汰最先近来的页面࿰…...