C++ 学习之 构造函数 和 析构函数
前言
总的来说,构造函数负责对象的初始化,而析构函数负责对象的清理和资源释放。它们是C++面向对象编程中非常重要的概念,用于管理对象的生命周期,确保对象在创建和销毁时都能够正确地进行初始化和清理。
正文

看代码
class person
{
public:person(){cout << " 这是一个构造函数 " << endl;}~person(){cout << " 这是一个析构函数 " << endl;}
};int main()
{person mike;system("pause"); return 0;
}
这段C++代码定义了一个名为person的类,并在main函数中创建了一个person类的对象mike。让我们逐步分析这个代码以了解构造函数和析构函数的作用:
class person
{
public:person(){cout << " 这是一个构造函数 " << endl;}~person(){cout << " 这是一个析构函数 " << endl;}
};
这里定义了一个名为person的类。在这个类中有两个特殊的成员函数:构造函数和析构函数。
构造函数:构造函数的名称与类名称相同,并且没有返回类型(包括void)。在这个构造函数中,只有一行代码,它输出"这是一个构造函数"。
析构函数:析构函数的名称与类名称相同,前面有一个波浪线(~),也没有返回类型。在这个析构函数中,只有一行代码,它输出"这是一个析构函数"。
main 函数:
int main()
{person mike;system("pause"); return 0;
}
在main函数中,首先创建了一个person类的对象mike。当对象mike被创建时,构造函数会自动被调用,因此会输出"这是一个构造函数"。
然后,程序执行system(“pause”)来等待用户按下任意键继续,以防止控制台窗口立即关闭。
最后,main 函数结束,程序返回0。在main函数结束时,对象mike超出了其作用域,因此析构函数会自动被调用,输出"这是一个析构函数"。
总结:
- 构造函数用于初始化对象,通常在对象创建时被自动调用。
- 析构函数用于清理对象,通常在对象超出作用域或被显式删除时被自动调用。
在这个例子中,构造函数和析构函数的主要作用是在对象的生命周期的开始和结束时执行特定的操作。
相关文章:
C++ 学习之 构造函数 和 析构函数
前言 总的来说,构造函数负责对象的初始化,而析构函数负责对象的清理和资源释放。它们是C面向对象编程中非常重要的概念,用于管理对象的生命周期,确保对象在创建和销毁时都能够正确地进行初始化和清理。 正文 看代码 class perso…...
加快 MySQL 数据迁移
目录 一、先导 1. 自建目标实例 2. 配置目标主从 二、源导出 1. 生成查询用户权限的SQL语句 2. 生成权限的SQL语句 3. 生成创建非主键索引的SQL语句 4. 导出源库结构 5. 导出源库数据 三、目标导入 1. 目标实例设置 2. 创建用户与权限 3. 处理结构导出文件 4. 导…...
CANalyzer panel
(1205条消息) CAPL 脚本中对信号,系统变量,环境变量的 事件响应_capl programs脚本怎么写信号运算_蚂蚁小兵的博客-CSDN博客 注意环境变量是在工程关联的dbc中创建的;而系统变量是在CANoe工程工具栏的”Environment”下的”System Variables”…...
延迟队列的理解与使用
目录 一、场景引入 二、延迟队列的三种场景 1、死信队列TTL对队列进行延迟 2、创建通用延时消息死信队列 对消息延迟 3、使用rabbitmq的延时队列插件 x-delayed-message使用 父pom文件 pom文件 配置文件 config 生产者 消费者 结果 一、场景引入 我们知道可以通过TT…...
jQuery成功之路——jQuery的DOM操作简单易懂
jQuery的DOM操作 1.jQuery操作内容 jQuery操作内容 1. text() 获取或修改文本内容 类似于 dom.innerText 2. html() 获取或修改html内容 类似 dom.innerHTML 注意: 1. text() 是获取设置所有 2. html() 是获取第一个,设置所有 <!DOCTYPE html> <html lang"zh…...
C++ 学习系列 -- 智能指针 make_shared 与 make_unique
一 make_shared 1.1 make_shared 是什么? c 11 中 引入了智能指针 shared_ptr,以及一个模板函数 make_shared 来生成一个制定类型的 shared_ptr。 1.2 引入 make_shared ,解决了什么问题? make_shared的引入,主…...
贝叶斯神经网络 - 捕捉现实世界的不确定性
贝叶斯神经网络 - 捕捉现实世界的不确定性 Bayesian Neural Networks 生活本质上是不确定性和概率性的,贝叶斯神经网络 (BNN) 旨在捕获和量化这种不确定性 在许多现实世界的应用中,仅仅做出预测是不够的;您还想知道您对该预测的信心有多大。例…...
games101作业1
题目 给定三维下三个点 v0(2.0, 0.0, −2.0), v1(0.0, 2.0, −2.0), v2(−2.0, 0.0, −2.0), 你需要将这三个点的坐标变换为屏幕坐标并在屏幕上绘制出对应的线框三角形 (在代码框架中,我们已经提供了 draw_triangle 函数,所以你只需要去构建变换矩阵即可…...
LeetCode 面试题 02.08. 环路检测
文章目录 一、题目二、C# 题解 一、题目 给定一个链表,如果它是有环链表,实现一个算法返回环路的开头节点。若环不存在,请返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了…...
【Linux】线程安全-生产者消费者模型
文章目录 生产者消费者模型123规则应用场景优点忙闲不均生产者和消费者解耦支持高并发 代码模拟 生产者消费者模型 123规则 1个线程安全的队列:只要保证先进先出特性的数据结构都可以称为队列 这个队列要保证互斥(就是保证当前只有一个线程对队列进行操…...
优化(2) 2023/09/03
今天重新温习了下clean abap,以前只是偶尔打开看几眼。今天把有些自己不熟悉的地方,重点研究了下。有几个点可以在以后工作使用。这几点可能并不能提升程序效率,但会大大提高代码可读性和代码的可扩展性: 用insert XXX into tabl…...
Swap and Reverse 题解
Swap and Reverse 题面翻译 题目描述 本题共有 t t t 组数据。 给定一个长度为 n n n 的字符串 s s s 和一个整数 k k k, s s s 只包含小写字母,你可以进行若干次操作(可以是零次),具体操作如下: 选…...
单元测试:优雅编写Kotlin单元测试
一、MockK简介 MockK是一款功能强大、易于使用的Kotlin mocking框架。在编写单元测试时,MockK能够帮助我们简化代码、提高测试覆盖率,并改善测试的可维护性。除了基本用法外,MockK还提供了许多额外的功能和灵活的用法,让我们能够…...
深度学习入门教学——卷积神经网络CNN
目录 一、CNN简介 一、输入层 二、卷积层 三、池化层 四、全连接层 一、CNN简介 1、应用领域 检测任务 分类与检索 超分辨率重构 2、卷积网络与传统网咯的区别 传统神经网络和卷积神经网络都是用来提取特征的。神经网络: 可以将其看作是一个二维的。卷积神经…...
【MySQL】MySQL系统变量(system variables)列表(mysqld --verbose --help的结果例)
文章目录 【MySQL】MySQL系统变量(system variables)列表(mysqld --verbose --help的结果例)mysqld --verbose --help的结果例参考 【免责声明】文章仅供学习交流,观点代表个人,与任何公司无关。 编辑|SQL和…...
Python学习之四 数据输入与输出
(一) 脚本编程 前面的章节,组要学习了一些简单的Python编程,使用的是交互式解释器,本章节将开始进行脚本编程。可以使用多种编辑器或者IDE完成编码,主要使用vim。 参考前续小节的写法,我们给a、b分别赋值3和5。 在终端运行程序后发现,没有任何输出。这就是本次我们将要…...
VBA技术资料MF51:VBA_在Excel中突出显示唯一值
【分享成果,随喜正能量】世间万物,因果循环不休,你的善心善行,都可能成为你的善缘善果。每天忆佛念佛,每天都在佛菩萨的加持下生活,自然吉祥如意,法喜充满。 。 我给VBA的定义:VBA是…...
Mqtt学习笔记--交叉编译移植(1)
简述 Mqtt目前在物联网行业的应用比较多,mqtt属于应用层的一个中间件,这个中间件实现消息的订阅发布机制。网上介绍Mqtt的实现原来的比较多,这里不细介绍。 其实在我们之前的产品中,自己也开发的有类似的中间件,除了具…...
Gateway的服务网关
Gateway服务网关 Gateway网关是我们服务的守门神,所有微服务的统一入口。 网关的核心功能特性: 请求路由 权限控制 限流 架构如下: gateway使用 引入依赖 创建gateway服务,引入依赖 <!--网关--> <dependency>…...
信息化发展18
存储技术 1 、存储分类 2 、常用存储模式的技术与应用对比: ( 1 ) 存储虚拟化( Storage Virtualization ) 是“ 云存储” 的核心技术之一。 它带给人们直接的好处是提高了存储利用率, 降低了存储成本, 简…...
【架构实战】读写分离中间件对比(ShardingSphere/MyCat)
一、为什么需要读写分离 在大多数互联网应用中,读操作远多于写操作: 读请求:70-80% 写请求:20-30%单机数据库的问题: 主库:处理所有写请求 部分读请求↓ 连接池耗尽 → 响应变慢 → 用户投诉解决方案&a…...
窗口管理效率革命:Topit如何重塑Mac多任务工作流
窗口管理效率革命:Topit如何重塑Mac多任务工作流 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 在数字化工作环境中,多任务处理已成为常…...
3分钟快速上手:使用image2cpp免费在线工具将图像转换为Arduino字节数组
3分钟快速上手:使用image2cpp免费在线工具将图像转换为Arduino字节数组 【免费下载链接】image2cpp 项目地址: https://gitcode.com/gh_mirrors/im/image2cpp image2cpp图像转换工具是嵌入式开发者的得力助手,这个强大的免费在线工具能够将普通图…...
魔兽争霸3帧率优化完全指南:从技术原理到实战调优
魔兽争霸3帧率优化完全指南:从技术原理到实战调优 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 一、性能瓶颈诊断:定位魔兽争…...
告别混乱!用Python+shutil一键整理UCF101数据集(附完整代码)
告别混乱!用Pythonshutil一键整理UCF101数据集(附完整代码) 刚接触行为识别的研究者,十有八九会在UCF101这类经典数据集的预处理环节卡壳——下载的压缩包解压后,视频文件散落在101个子目录中,而官方提供的…...
丹青幻境问题解决:避讳词设置与角色畸形手指修复指南
丹青幻境问题解决:避讳词设置与角色畸形手指修复指南 1. 引言:AI绘画中的常见挑战 在使用丹青幻境进行角色设计时,许多创作者都会遇到两个典型问题:一是生成的图像中出现不想要的元素,二是角色手指等细节部位出现畸形…...
工业质检新思路:当UNet遇上钢材缺陷,聊聊PyTorch实战中的那些‘坑’与优化技巧
工业质检实战:UNet在钢材缺陷检测中的高阶优化与避坑指南 第一次把UNet模型部署到钢厂产线时,我盯着监控屏幕上闪烁的误报提示,意识到学术论文里的漂亮指标和真实工业场景之间,隔着无数个深夜调试的神经网络。钢材表面那些细如发丝…...
大子刊nc复现:连续介质中束缚态驱动下的平面手征超表面,展示最大和可调谐的三次谐波、本征手性B...
comsol三次谐波,本征手性BIC,远场偏振图,手性透射曲线,二维能带图,Q因子图,电场图,所见即所得 大子刊nc复现,在连续介质中束缚态驱动下具有最大和可调谐手征光学响应的平面手征超表面今天咱们来…...
newTimer嵌入式定时器库:跨平台非阻塞延时与状态机设计
1. newTimer 定时器库深度解析:跨平台嵌入式精准延时与状态管理方案1.1 库定位与工程价值newTimer是一个轻量级、高度可移植的 C 定时器抽象库,专为资源受限的嵌入式微控制器设计。其核心价值不在于替代硬件定时器外设,而在于提供统一、语义清…...
LLM性能评估入门到精通,搞懂推理指标看这篇就够了!
TTFT、TPOT、ITL、Goodput… 这些指标到底什么意思?今天用一篇文章彻底讲清楚 LLM 推理的性能评估体系。 一、为什么指标很重要 生产环境的真实场景 你部署了一个大模型服务,用户反馈: “首字响应好慢” → 什么问题?“生成过程…...
