当前位置: 首页 > news >正文

【C++】类和对象(四):析构函数

大家好,我是苏貝,本篇博客带大家了解C++的析构函数,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️
在这里插入图片描述


目录

  • 1. 概念
  • 2. 特性

1. 概念

通过前面构造函数的学习,我们知道一个对象是怎么来的,那一个对象又是怎么没呢的?

析构函数:与构造函数功能相反,析构函数不是完成对对象本身的销毁,局部对象销毁工作是由编译器完成的。而对象在销毁时会自动调用析构函数,完成对象中资源的清理工作(如我们之前在数据结构实现的顺序表、堆、栈等时写的destroy函数)

2. 特性

析构函数是特殊的成员函数,其特征如下:

  1. 析构函数名是在类名前加上字符 ~
  2. 无参数无返回值类型。
  3. 一个类只能有一个析构函数。若未显式定义,系统会自动生成默认的析构函数。注意:析构函数不能重载 (因为形参只能是无)
  4. 对象生命周期结束时,C++编译系统自动调用析构函数。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  1. 编译器自动生成的析构函数,对内置类型的成员变量不做处理,对自定义类型的成员变量调用它的析构函数。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  1. 如果类中没有申请资源时,析构函数可以不写,直接使用编译器生成的默认析构函数,比如 Date类;有资源申请时,一定要写,否则会造成资源泄漏,比如Stack类。

  2. 先定义的对象先调用构造函数,后定义的对象先调用析构函数

都是局部对象,后定义的先调用析构函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

对象生命周期结束时,编译器自动调用析构函数。局部变量(栈)在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 目录通常包含了系统的许多可共享资源&#xf…...

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 实现方法超时控制,提升应用响应性

完整版&#xff1a; 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 & 目录》&#xff08;持续更新&#xff09;《Java & Lock & LockSupport & 源码》&#xff08;学习过程/多有漏误/仅作参考/不再更新&#xff09;《Java & Lock & LockSupport & 总结》&#xff08;学习总结/最新…...

线性表之链式存储基本操作(c语言实现,附解析)

今天&#xff0c;我来讲一下数据结构链表的基本操作&#xff0c;首先我们要知道链表的基本操作有创建&#xff0c;查找&#xff0c;插入&#xff0c;删除。接下来我们逐一实现操作。 结构体定义 typedef struct Node* List; struct Node{ ElementType Data; List next; };文章…...

27.Redis哨兵架构

Redis哨兵高可用架构 Sentinel&#xff08;哨兵&#xff09;是一种特殊的 Redis 服务&#xff0c;其主要功能并非提供常规的读写服务&#xff0c;而是专门用于监控 Redis 实例节点。 1.在哨兵架构下&#xff0c;客户端&#xff08;client 端&#xff09;首次会从哨兵处找出 Re…...

BGP路由优选

BGP 的路由优选规则是一套多步决策链&#xff0c;用来确定在多个可行路由中选择最优的路由。BGP 是一种路径向量协议&#xff0c;通过这些优选规则&#xff0c;网络管理员可以控制数据流量的流向&#xff0c;确保网络的稳定性和效率。下面以一个实例来详细说明 BGP 的优选规则及…...

cjson内存泄漏问题注意事项

(1)使用root cJSON_Parse(text); //将字符串转成json格式&#xff0c;函数中申请了一块内存给root 所以在最后要释放root cJSON_Delete(root ); //释放cJSON_Parse()分配出来的内存空间 (2)使用out cJSON_Print(root);&#xff08;含有cJSON_PrintUnformatted函数&#x…...

雷军救WPS“三次”,WPS注入新生力量,不再“抄袭”微软

救WPS“三次” 1989年&#xff0c;求伯君用128万行代码编写出了WPS1.0&#xff0c;宣告了中国自主办公时代的开启。 那时候&#xff0c;雷军还在武汉大学深造&#xff0c;他早就把求伯君当成了自己的榜样&#xff0c;这一来二去的&#xff0c;雷军和WPS之间也就结下了不解之缘…...

zookeeper全系列学习之分布式锁实现

文章目录 前言一、分布式锁的通用实现思路二、ZK实现分布式锁的思路三、ZK实现分布式锁的编码实现1、核心工具类实现2、测试代码编写线程安全问题复现使用上面封装的ZkLockHelper实现的分布式锁 优点缺点 总结 前言 就像上篇文章zookeeper全系列学习之统一配置获取说的&#x…...

耐用的内衣洗衣机有哪些?双11好用内衣洗衣机品牌排行榜

现代社会高速发展&#xff0c;人们对于生活品质的追求不断提高&#xff0c;内衣作为贴身衣物&#xff0c;其清洁程度直接关系到个人卫生和健康。因此&#xff0c;耐用且高效的内衣洗衣机成为了许多家庭的必需品。在双11购物节期间&#xff0c;众多品牌推出了各种优惠活动&#…...

富格林:曝光可信经验击败陷阱

富格林认为&#xff0c;现货黄金投资是一项收益与风险并存的交易活动。在现货黄金中&#xff0c;时常为投资者曝光总结一些可信的交易经验&#xff0c;能在必要时帮助投资者击败陷阱&#xff0c;同时也会获得较高概率的收益。如今的投资经验和策略是非常多的&#xff0c;以下是…...

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的工程里面&#xff0c;想通过控制台输出或者调试&#xff0c;可以点开项目属性&#xff0c;把输出输出类型改为控制台应用输出&#xff0c;这样调试程序时&#xff0c;wpf的界面和控制台界面都会同时打开&#xff0c;而且写的控制台代码都会有效&#xff01; 设置如…...

使用 Spring Doc 为 Spring REST API 生成 OpenAPI 3.0 文档

Spring Boot 3 整合 springdoc-openapi 概述 springdoc-openapi 是一个用于自动生成 OpenAPI 3.0 文档的库&#xff0c;它支持与 Spring Boot 无缝集成。通过这个库&#xff0c;你可以轻松地生成和展示 RESTful API 的文档&#xff0c;并且可以使用 Swagger UI 或 ReDoc 进行…...

ssm基于ssm框架的滁艺咖啡在线销售系统+vue

系统包含&#xff1a;源码论文 所用技术&#xff1a;SpringBootVueSSMMybatisMysql 免费提供给大家参考或者学习&#xff0c;获取源码请私聊我 需要定制请私聊 目 录 第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&#xff08;不挂起&#xff09;&#xff0c;用于在系统后台不挂断地运行命令&#xff0c;退出终端不会影响程序的运行。 nohup 命令&#xff0c;在默认情况下&#xff08;非重定向时&#x…...

CSS、Less、Scss

CSS、Less和SCSS都是用于描述网页外观的样式表语言&#xff0c;但它们各自具有不同的特点和功能。以下是对这三者的详细阐述及区别对比&#xff1a; 详细阐述 CSS&#xff08;Cascading Style Sheets&#xff09; 定义&#xff1a;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)

&#x1f449;文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 基于SSM的心理咨询管理管理系统拥有三个角色&#xff1a;学生用户、咨询师、管理员 管理员&#xff1a;学生管理、咨询师管理、文档信息管理、预约信息管理、测试题目管理、测试信息管理…...

南开大学《2023年+2022年810自动控制原理真题》 (完整版)

本文内容&#xff0c;全部选自自动化考研联盟的&#xff1a;《南开大学810自控考研资料》的真题篇。后续会持续更新更多学校&#xff0c;更多年份的真题&#xff0c;记得关注哦~ 目录 2023年真题 2022年真题 Part1&#xff1a;2023年2022年完整版真题 2023年真题 2022年真题…...

【算法】Kruskal最小生成树算法

目录 一、最小生成树 二、Kruskal算法求最小生成树 三、代码 一、最小生成树 什么是最小生成树&#xff1f; 对于一个n个节点的带权图&#xff0c;从中选出n-1条边&#xff08;保持每个节点的联通&#xff09;构成一棵树&#xff08;不能带环&#xff09;&#xff0c;使得…...

Pocket通常指的是一种特定的凹形或凹槽

在几何和计算机辅助设计&#xff08;CAD&#xff09;中&#xff0c;“Pocket”通常指的是一种特定的凹形或凹槽&#xff0c;用于表示在物体表面上挖出的区域。其主要特点包括&#xff1a; 凹形区域&#xff1a;Pocket 是一个在三维模型中内凹的区域&#xff0c;通常从物体的表面…...

wordpress能做手机站吗/百合seo培训

对于一个只有3、5个人的小团队&#xff0c;在时间很紧的情况下&#xff0c;文档什么的肯定是能省则省啦。不过&#xff0c;有两个文档是绝对不能省的。不但不能省&#xff0c;还要尽全力把它们做好&#xff0c;并且保持更新。这两个文档就是&#xff1a;使用Power Designer制作…...

装修设计网站哪个平台最好/网站查询ip地址查询

前言 从毕业到现在面试也就那么几家公司&#xff0c;单前几次都比较顺利&#xff0c;在面到第三家时都给到了我offer&#xff01;前面两次找工作&#xff0c;没考虑到以后需要什么&#xff0c;自己的对未来的规划是什么&#xff0c;只要有份工作&#xff0c;工资符合自己的要求…...

如何做企业网站后台管理/网络推广引流

1. 迁移背景介绍目前我们的图数据库数据量为 顶点 20 亿&#xff0c;边 200 亿的规模。在迁移之前我们使用的 AgensGraph 数据库一个主库四个备库&#xff0c;机器的配置都比较高&#xff0c;256G 内存 SSD 的磁盘&#xff0c;单机数据量为 3T左右。在数据量比较小的情况下 Age…...

哪个公司做的网站好/广州seo优化费用

大家好&#xff01;学习理论知识之后&#xff0c;怎么能没有一些配套的习题呢&#xff1f;这当然是没问题的&#xff01;这次我们就来做一做配套的习题&#xff1a; 主题&#xff1a;死亡骰&#xff08;这个字念tou2&#xff08;投&#xff09;&#xff09;子 “死亡骰子”是一…...

南宁手机建站公司/淘宝关键词优化技巧教程

点击上方蓝字关注我们1前言曾几何时&#xff0c;”云”还是指天上飘的那一朵朵白色的雾团&#xff0c;现在互联网上家家都说自己是”xx云”。“云”这个词&#xff0c;已经被赋上了新的含义。其实真正在做”云”的企业没几家。这篇文章会告诉大家&#xff0c;究竟什么是”云”&…...

策划网站做营销推广/学校教育培训机构

缓存实现的过程以及淘汰旧页面的机制不同&#xff0c;所以会有不同缓存调度方法&#xff0c;就常见的就是FIFO&#xff0c;LRU&#xff0c;LFU缓存过期策略。 1.FIFO&#xff08;First In First out&#xff09;&#xff1a;先见先出&#xff0c;淘汰最先近来的页面&#xff0…...