类与对象(2)
我们在了解了类的简单创建后,需要对类的创建与销毁有进一步的了解,也就是对于类的构造函数与析构函数的了解。
目录
注意:
构造函数的特性:
析构函数:
注意:
该部分内容为重难点内容,在正常的学习与学校的考试中,该内容为必要内容,读者不能因为其较难而放弃。
类在创建与销毁时,会伴随着构造函数和析构函数的调用。
当我们没有对这两个函数进行定义时,系统会主动给我们生成一个无参的构造函数和一个无参的析构函数。
构造函数的特性:
1.构造函数的函数名与类的名称相同
class Date
{
public:Date(){}~Date(){}
};
2.构造函数分为初始化构造函数和拷贝构造函数
注意:这一期我们针对初始化构造函数进行讲解,拷贝构造函数将放于单独一期
3.构造函数在类创建时对类内数据进行一定的初始话操作
class Date
{public:Date(int year=2024,int month=7,int day=10){_year=year;_month=month;_day=day;}private:int _year,_month,_day;} ;
4.构造函数可以进行函数重载
class Date
{public:Date(){_year=2024;_month=7;_day=10;}Date(int year){_year=year;}Date(int year,int month){_year=year;_month=month;}Date(int year,int month,int day){_year=year;_month=month;_day=day;}private:int _year,_month,_day;} ;
注意:我们进行函数重载时,需要注意对于析构函数我么要注意函数的各种类型都要对应,不然系统就无法匹配相应的构造函数类型。
所以我建议读者在创建构造函数时,可以创建全缺省的函数:
class Date
{public:Date(int year=2024,int month=7,int day=10){_year=year;_month=month;_day=day;}private:int _year,_month,_day;} ;
析构函数:
1.析构函数是在类名前面加一个~
class Date
{public:Date(int year=2024,int month=7,int day=10){p=new int(10);}~Date(){delete[]p;}private:int _year,_month,_day;int*p;
} ;
2.析构函数的作用,对数据进行释放处理,对栈区消耗内存进行及时的释放
如果不进行手动释放内存会有所堆积,从而导致栈溢出。
3.对需要内存释放的类,必须进行释放处理,也就是我们此时必须要自己写析构函数
4.析构函数不能进行函数重载

对于两者的区别我们不再进行讨论,读者自己进行对比吧。
相关文章:
类与对象(2)
我们在了解了类的简单创建后,需要对类的创建与销毁有进一步的了解,也就是对于类的构造函数与析构函数的了解。 目录 注意: 构造函数的特性: 析构函数: 注意: 该部分内容为重难点内容,在正常…...
迂回战术:“另类“全新安装 macOS 15 Sequoia beta2 的极简方法
概述 随着 WWDC 24 的胜利闭幕,Apple 平台上各种 beta 版的系统也都“跃跃欲出”,在 mac 上自然也不例外。 本次全新的 macOS 15 Sequoia(红杉)包含了诸多重磅升级,作为秃头开发者的我们怎么能不先睹为快呢࿱…...
如何设计一个秒杀系统,(高并发高可用分布式集群)
设计一个高并发、高可用的分布式秒杀系统是一个非常具有挑战性的任务,需要从架构、数据库、缓存、并发控制、降级限流等多个维度进行考虑。以下是一个典型的秒杀系统设计思路: 1. 系统架构 微服务架构 拆分服务:将系统功能拆分为多个微服务…...
深度优先搜索(所有可达路径)
参考题目:所有可达路径 题目描述 给定一个有 n 个节点的有向无环图,节点编号从 1 到 n。请编写一个函数,找出并返回所有从节点 1 到节点 n 的路径。每条路径应以节点编号的列表形式表示。 输入描述 第一行包含两个整数 N,M&…...
如何配置yolov10环境?
本文介绍如何快速搭建起yolov10环境,用于后续项目推理、模型训练。教程适用win、linux系统 yolo10是基于yolo8(ultralytics)的改进,环境配置跟yolo8几乎一模一样。 目录 第1章节:创建虚拟环境 第2章节:…...
『大模型笔记』GraphRAG:利用复杂信息进行发现的新方法!
GraphRAG:利用复杂信息进行发现的新方法! 文章目录 一. GraphRAG:利用复杂信息进行发现的新方法!1. 将RAG应用于私人数据集2. 整个数据集的推理3. 创建LLM生成的知识图谱4. 结果指标5. 下一步二. 参考文献微软官方推文:https://www.microsoft.com/en-us/research/blog/gra…...
数据结构1:C++实现变长数组
数组作为线性表的一种,具有内存连续这一特点,可以通过下标访问元素,并且下标访问的时间复杂的是O(1),在数组的末尾插入和删除元素的时间复杂度同样是O(1),我们使用C实现一个简单的边长数组。 数据结构定义 class Arr…...
C++入门基础篇(下)
目录 6.引用 6.1 引用的特性 6.2 const引用 7.指针和引用的关系 8.内联函数 9.nullptr 6.引用 引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间, 它和它引⽤的变量共⽤同⼀块内存空间。比如&a…...
LabVIEW图像分段线性映射
介绍了如何使用LabVIEW对图像进行分段线性映射处理,通过对特定灰度值区间进行不同的线性映射调整,以优化图像的显示效果。案例中详细展示了如何配置和使用LabVIEW中的图像处理工具,包括设置分段区间、计算映射参数和应用映射函数等步骤。 实…...
Linux开发:进程件通过UDS传递内存文件句柄
Linux开发:进程间通过Unix Domain Socket传递文件描述符-CSDN博客 介绍了通过UDS传递文件描述符 Linux开发:通过memfd_create创建一个内存文件-CSDN博客 介绍了如果创建一个内存文件 将两者相结合,就可以通过UDS传递一块内存文件句柄也就是内存数据 //uds_fd.hpp #pragma …...
Internet Download Manager6.42最新下载器互联网冲浪小能手们!
今天我要来种草一个超级棒的宝贝——Internet Download Manager(简称 IDM)。这个小家伙简直是下载界的“速度与激情”代言人,让我彻底告别了等待的日子。🎉 IDM马丁正版下载如下: https://wm.makeding.com/iclk/?zoneid34275 …...
Vue 使用Audio或AudioContext播放本地音频
使用Audio 第一种 使用标签方式 <audio src"./tests.mp3" ref"audio"></audio><el-button click"audioPlay()">播放Audio</el-button>audioPlay() {this.$refs.audio.currentTime 0;this.$refs.audio.play();// this.$…...
从数据仓库到数据湖(上):数据湖导论
文章目录 一、什么是数据湖?起源数据湖的特征 二、为什么要用数据湖?三、数据湖与数据仓库的区别数据仓库和数据湖的对比 四、数据湖本质数据存储架构数据处理工具:三类第一类工具第二类工具第三类工具 小结 五、总结六、参考资料 一、什么是…...
Perl 语言开发(六):深入探索 Perl 中的数组与列表操作
目录 1. 数组和列表的基本概念 1.1 数组的定义与特点 1.2 列表的定义与特点 2. 数组的基本操作 2.1 访问数组元素 2.2 数组的长度 2.3 添加和删除元素 2.4 切片操作 2.5 迭代数组 3. 列表的常见操作 3.1 创建和使用列表 3.2 列表的上下文 3.3 列表和数组的转换 3…...
统一视频接入平台LntonCVS视频监控平台具体功能介绍
LntonCVS视频监控平台是一款基于H5技术开发的安防视频监控解决方案,专为全球范围内不同品牌、协议及设备类型的监控产品设计。该平台提供了统一接入管理,支持标准的H5播放接口,使其他应用平台能够快速集成视频功能。无论开发环境、操作系统或…...
redis的Bitmap 、HyperLogLog、Geo相关命令和相关场景
Bitmap 相关命令: #SETBIT - 设置指定位置的比特值。SETBIT key offset value # 将 key 对应的 bitmap 中第 offset 位设置为 value(0 或 1)。#GETBIT - 获取指定位置的比特值。GETBIT key offset # 返回 key 对应 bitmap 的第 offset 位的…...
✅小程序申请+备案教程
##red## 🔴 大家好,我是雄雄,欢迎关注微信公众号,雄雄的小课堂。 零、注意事项 需要特别注意的是,如果公司主体的微信公众号已经交过300块钱的认证费了的话,注册小程序通过公众号来注册,可以免…...
Google Guava Cache简介
目录 简介和Redis的区别 简介 Google Guava 是一个开源的 Java 库,其中提供了一系列强大的工具来简化 Java 开发工作。其中,Guava Cache 组件提供了一个内存缓存的实现,可以显著提高应用程序的性能。这是一个高效且灵活的缓存解决方案&#…...
githup开了代理push不上去
你们好,我是金金金。 场景 git push出错 解决 cmd查看 git config --global http.proxy git config --global https.proxy 如果什么都没有,代表没设置全局代理,此时如果你开了代理,则执行如下,设置代理 git con…...
【python】保存列表、字典数据到本地文件,以txt、json和pickle为例
Python保存列表、字典数据到本地文件(txt, json, pickle) 在Python编程中,我们经常需要将数据(如列表、字典等)保存到本地文件,以便后续读取、分析或与其他系统交换数据。Python提供了多种格式来保存这些数…...
从IEEE 1588到EtherCAT DC:深入对比两种工业网络时间同步协议的核心差异与应用选型
工业网络时间同步技术深度解析:EtherCAT DC与IEEE 1588的实战选型指南 在智能制造和自动化控制领域,毫秒级的响应时间早已成为过去式。现代工业网络对时间同步精度的要求已经进入纳秒时代——这相当于光在真空中仅能传播30厘米的时间跨度。当多个伺服电…...
Tetgen网格剖分结果怎么看?.node/.ele/.face文件详解与在ParaView中的可视化
Tetgen网格剖分结果解析与ParaView可视化实战指南 当你第一次运行Tetgen并看到那些.node、.ele和.face文件时,可能会感到困惑——这些看似简单的文本文件如何转化为直观的三维网格?本文将带你深入理解这些文件的内部结构,掌握网格质量评估的关…...
aioquic未来展望:QUIC v2、WebTransport等新技术趋势的完整指南
aioquic未来展望:QUIC v2、WebTransport等新技术趋势的完整指南 【免费下载链接】aioquic QUIC and HTTP/3 implementation in Python 项目地址: https://gitcode.com/gh_mirrors/ai/aioquic 在当今互联网技术快速发展的时代,网络协议正在经历一场…...
如何用HS2-HF_Patch一键解锁Honey Select 2完整游戏体验
如何用HS2-HF_Patch一键解锁Honey Select 2完整游戏体验 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是一款专为Honey Select 2游戏设计的一站式…...
STM32F103软件模拟IIC驱动0.96寸OLED:从零搭建与界面交互优化
1. 硬件准备与接线指南 拿到STM32F103核心板和0.96寸OLED模块时,我第一反应是翻看引脚定义。这块4针OLED通常采用IIC接口,接线其实特别简单,只需要4根线:VCC、GND、SCL、SDA。但要注意供电电压,我刚开始用5V供电结果屏…...
AI智能体持久化记忆系统Plumb:混合检索与本地化部署实践
1. 项目概述:为AI智能体构建持久化记忆 如果你和我一样,深度使用过Claude、Cursor这类AI编程助手,或者正在探索OpenClaw这类更复杂的AI智能体框架,一个核心痛点会反复出现: 对话没有记忆 。每次开启一个新会话&#…...
微信AI机器人搭建全攻略:基于WeChatFerry与ChatGPT的自动化消息回复
1. 项目概述与核心思路 最近在折腾一个挺有意思的玩意儿:一个能帮你自动回复微信消息的AI机器人。这项目叫 wechat-bot ,虽然原作者已经暂停维护,但它的核心思路和实现方式,对于想自己动手搞点自动化工具的朋友来说,…...
基于LLM智能体的自动化研究工具autoresearch:从部署到实战调优
1. 项目概述:当AI成为你的全职研究助理如果你也曾在深夜面对海量文献、数据报告和网络信息感到无从下手,或者为一个研究课题的初步资料搜集耗费数天时间却收效甚微,那么darks0l/autoresearch这个项目可能会让你眼前一亮。简单来说,…...
Apache Atlas UI实战:从数据资产发现到血缘追溯的完整操作指南
1. Apache Atlas入门:数据治理的瑞士军刀 第一次接触Apache Atlas时,我正被公司混乱的数据资产搞得焦头烂额。报表数据频繁出错却找不到源头,新来的同事总在问"这个字段是什么意思",业务部门抱怨找不到他们需要的数据..…...
《Java 100 天进阶之路》第1篇:编程语言类型有哪些?我心中的TOP1编程语言,什么是Java跨平台性?
第1篇:编程语言类型有哪些?我心中的TOP1编程语言,什么是Java跨平台性? 一、核心知识点 编程语言的三大类型:机器语言、汇编语言、高级语言Java为什么是“一次编写,到处运行”(跨平台原理&…...
