C++类和对象(2)——拷贝构造函数

拷贝构造函数的语法

拷贝构造函数是构造函数的重载,

用于这种情况:用已经构造好的对象去给另一个对象初始化。

int main()
{Date d1(2024, 8, 1);Date d2(d1);//用d1初始化d2return 0;
}

我们以Date类为例子讲解一下。

class Date
{
public://全缺省构造函数Date(int year = 2000, int month = 1, int day = 1){_year = year;_month = month;_day = day;}//拷贝构造函数Date(const Date& d){_year = d._year;_month = d._month;_day = d._day;}~Date(){}
private:int _year;int _month;int _day;
};

语法格式为:

类名 + ‘(’ + const + 类名 + 引用符号& + 形参名字 + ‘)’ +  { }。

{}里面就让成员变量等于传入的对象d的成员变量。

说人话就是,1:1复刻传入的对象d.

拷贝构造函数的实用之处

d1和d2的成员变量的地址是一样的,

让我们给Date类增加一个变量

调试时就会发现两个指针变量a地址一样,

析构函数释放同一块空间2次,程序就会崩掉。

正确写法

class Date
{
public://全缺省构造函数Date(int year = 2000, int month = 1, int day = 1){_year = year;_month = month;_day = day;a = (int*)malloc(sizeof(int) * 3);}Date(const Date& d){_year = d._year;_month = d._month;_day = d._day;//a = d.a; // 错误写法a = (int*)malloc(sizeof(int) * 3);memcpy(a, d.a, sizeof(int) * 3);}~Date(){free(a);a = nullptr;}
private:int _year;int _month;int _day;int* a;
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/409096.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【计算机网络】计算机网络的概念

什么是计算机网络? 计算机网络(Computer networking)是一个将众多分散的、自治的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。 计算机网络、互连网、互联网的区别 计算机…

OpenCV几何图像变换(4)亚像素图像截取函数getRectSubPix()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 从图像中以亚像素精度检索像素矩形。 getRectSubPix 函数从 src 中提取像素: p a t c h ( x , y ) s r c ( x center.x − ( dst.…

指针之旅(1)—— 指针基础概念知识(详细解析)

前言:该篇我将详细讲解指针当中的一些基本概念,有内存和地址的部分硬件知识,有专门服务于指针的操作符&和*,有指针大小固定不变的原因,还有专属于指针的运算规则。 目录 1. 内存和地址 1.1 内存地址的概念&…

<数据集>非洲动物识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:1504张 标注数量(xml文件个数):1504 标注数量(txt文件个数):1504 标注类别数:4 标注类别名称:[buffalo, elephant, rhino, zebra] 序号类别名称图片数框数1buffalo3…

水凝胶与柔性电子啥关系?能用来干啥?

大家好,今天我们来聊一聊一篇关于水凝胶在柔性电子领域应用的文章——《Smart materials for flexible electronics and devices: hydrogel》发表于《RSC Advances》。随着科技的不断发展,柔性电子设备越来越受到关注,而水凝胶作为一种具有独…

Apache Flink内存模型

Flink 内存模型 大数据中所有开源的框架都会使用到JVM,不如,MapReduce,Storm,Spark等,这些计算框架处理数据过程中涉及到将大量数据存储到内存中,此时如果内存管理过渡依赖JVM,会出现java对象存…

docke进阶---镜像迁移、容器的ip地址、端口映射和持久化

1.镜像的迁移 1.镜像打包 #查看镜像有一个centos的镜像 [rootdocker0 ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE centos latest 5d0da3dc9764 2 years ago 231MB 3查看帮助文件 docker --help save Save one or more…

stm32-SD卡实验

1. SD简介 SD卡,Secure Digital Card,称为安全数字卡(安全数码卡)。 SD卡系列主要有三种:SD卡(full size)、MiniSD卡和MicroSD卡(原名 TF卡)。 特点:容量大、高安全性、体积小、传…

打包资料优化目录

这篇文章主要写一下这一次更新的几个地方,有对原来的代码及模型进行优化的部分,也有新增加的代码和模型,我就把几个比较典型的给列了出来。但是还有好多的更新没有在下面展示出来,因为一个个展示出来太复杂了。如果你对更新的内容…

暑期算法训练

目录 A.糖果(Candy) B.小红的数组重排 C.牛牛与LCM D.子串 E.勤奋的杨老师 F.清楚姐姐跳格子 G.方块 I H.PUBG A.糖果(Candy) 思路 :贪心,为了使操作数最少,我们要尽可能的先吃第二个盒子里的糖果&#x…

UE5.4 - 下载和安装

一. 简介 虚幻引擎(Unreal Engine)是由 Epic Games 公司推出的一款功能强大的游戏开发引擎。它于 1998 年推出第一代,其口号是 “全球最开放、最先进的实时 3D 创作工具”。 虚幻引擎被广泛应用于游戏产业,创作出了众多知名的 3…

【工具类】Java优雅的将XML转为JSON格式、XML转JSON

Java优雅的将XML转为JSON格式、XML转JSON 1. 导入依赖1.1 Maven使用1.2 Gradle使用 2. 代码编写3.运行示例 1. 导入依赖 1.1 Maven使用 <dependency><groupId>org.dom4j</groupId><artifactId>dom4j</artifactId><version>2.1.3</vers…

黑神话悟空,高清壁纸、原画,游戏截图

黑神话悟空&#xff0c;高清壁纸、原画&#xff0c;游戏截图&#xff1a; 链接&#xff1a;https://pan.quark.cn/s/cd17c05c4f33

【STM32】驱动LCD

没买LCD屏&#xff0c;没有上机实践&#xff0c;只是学习了理论。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录 1 屏幕接口 2 屏幕驱动的基本步骤 3 8080时序的各信号线 4 8080的读和写 5 屏…

二分查找算法:朴素二分+左右边界二分力扣实战应用

目录&#xff1a; 1、二分查找算法简介 2、算法原理及时间复杂度分析 2.1 朴素二分算法 3.2 查找左右边界的二分算法 3.2.1 查找左边界 3.2.2 查找右边界 3.3 时间复杂度分析 3、二分查找算法模版 3.1 朴素二分模版 3.2 查找左右边界的二分模版 4、算法应用【leetco…

考研数学暑期进度大调查,你掉队了吗?

现在已经8月&#xff0c;马上快9月份了&#xff0c;你的数学进度学到哪里啦&#xff1f; 我可不是“进度哥“&#xff0c;也不会营造焦虑&#xff0c;其实对于进度这个事情&#xff0c;我一直觉得是一个伪命题&#xff0c;因为很多同学一直鼓吹进度多快&#xff0c;结果最后考…

合宙LuatOS开发板使用说明——Air700ECQ

EVB-Air700ECQ-IO 开发板是合宙通信推出的基于 Air700ECQ 模组所开发的&#xff0c;包含电 源&#xff0c; SIM 卡&#xff0c;USB &#xff0c;天 线&#xff0c; 全 IO 引 出的最 小硬 件系 统。以 方便 用户 在设 计前期 对 Air700ECQ 模块进行性能评估&#xff0c;功能调试…

Hadoop集群运维管理

Hadoop集群运维管理 一、Hadoop 集群进程管理1.1 NameNode 守护进程管理1.2 DataNode 守护进程管理1.3 ResourceManager 守护进程管理1.4 NodeManager 守护进程管理 二、Hadoop 集群运维技巧2.1 查看日志2.2 清理临时文件2.3 定期执行负载均衡2.4 文件系统检查2.5 元数据备份 三…

Maven的一些相关知识【重修】《包括私服搭建!》

mvnrepository.com Maven 下载jar包的位置&#xff01; 【该部分有教程】 这是什么nb代码投稿视频-这是什么nb代码视频分享-哔哩哔哩视频 MAVEN 的私服搭建&#xff1a; https://zhuanlan.zhihu.com/p/520107316 2、maven私服搭建及应用&#xff08;下&#xff09;_哔哩…

SQL手工注入漏洞测试(PostgreSQL数据库)

判断注入点 and 12 判断回显点 order 不用 4 页面正常 order by 5 页面异常&#xff0c;得出只存在四个字段 测试回显位置 and 12 union select null,null,null,null and 12 union select null,null,null,null and 12 union select null,null,null,null and 12 union select…