C++之深拷贝和浅拷贝*

两者本质:


浅拷贝:简单的赋值拷贝操作

深拷贝:在堆区中重新申请空间,进行拷贝操作new & delete

注意事项:堆区是在地址中重新申请空间,所以后续一系列操作new delete是通过指针* age进行操作(解决拷贝操作中指针复制时,产生的堆区指针地址重复释放的问题)

 有参构造:指针需要手动开辟堆区new

 

 拷贝操作:

1.参数格式

2.开辟内容int *(主要看传入的是什么)

 

#include<iostream>
using namespace std;class Person
{
public:int age;int *weight;//有参构造Person(int a,int w){age = a;weight = new int(w);    //指针属性要手动开辟new!!!!cout << "有参构造" << endl;}//拷贝操作//const防止对引用数据的意外修改Person(const Person &p){//浅拷贝/*age = p.age;weight = p.weight;*///深拷贝age = p.age;weight = new int(*p.weight);//new一个体重指针int大小的堆区}//析构函数~Person(){if (weight != NULL){delete weight;weight = NULL;}cout << "Person析构函数调用" << endl;}};
//int main()
//{
//	Person p1(22, 90);
//	cout << "p1的年龄和体重" << p1.age << " " << *p1.weight << endl;
//
//	Person p2(p1);
//	cout << "p2的年龄和体重" << p2.age << " " << *p2.weight << endl;
//
//
//	system("pause");
//	return 0;
//}

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

委托的注册和注销

让我们来回顾一下委托的内容。 委托 是一种复杂的数据类型&#xff0c;需要我们先定义出来。当定义好类型后&#xff0c;声明委托变量来使用。 可以装载方法&#xff0c;只可以装载具有相同返回类型和参数列表的方法。 委托变量名&#xff08;参数列表&#xff09;&#xf…

进击J7:对于ResNeXt-50算法的思考

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 本周任务是自行探索解决问题&#xff0c;通过此次思考过程逐渐将知识层面的学习过渡到能力层面的培养上。 一、任务 &#x1f4cc; **你需要解决的疑问&…

Zend Studio 13.6.1汉化中文版

在线汉化地址 https://download.eclipse.org/technology/babel/update-site/R0.16.1/2018-12/ 后面一直Next&#xff0c;最后让它后台自动安装 汉化完成 &#xff01;其实还是习惯用英文版&#xff01;&#xff01;&#xff01;&#xff01;&#x1f600;

Tableau Einstein 重磅亮相,融合 AI 与数据云提供统一且无缝的分析新体验!

通过内置可重复使用和可扩展的组件、语义 AI 和统一的数据&#xff0c;来加速不同部门和领域的用户工作流程。 近日&#xff0c;为期三天的 Dreamforce 2024 年度大会&#xff08;下文简称 DF24&#xff09;在美国旧金山隆重举行。 其中&#xff0c;最受关注的莫过于 Salesfor…

动态路由---OSPF协议基础

一、动态路由 1.1、定义 动态路由是指在网络通信过程中&#xff0c;路由器根据当前网络的状态和拓扑结构等信息&#xff0c;动态计算出最优的数据传输路径。这一过程依赖于路由器之间的路由信息交换和路由表的维护。当网络拓扑结构发生变化时&#xff0c;如链路故障或节点增减…

.NET 一直跻身 30 大Github最活跃开源项目之列。

大家好&#xff0c;我是编程乐趣。 一直以来都在介绍.Net的热门开源项目&#xff0c;今天来说说.Net本身。 .Net在GitHub上也是一个开源项目&#xff0c;.NET 是一个由 Microsoft 和 .NET 社区共同维护的开源跨平台框架。 自 2017 年以来&#xff0c;.NET 一直是 GitHub 上最…

Debian 12上安装google chrome

当前系统&#xff1a;Debian 12.7 昨天在Debian 12.7上安装Google Chrome时&#xff0c;可能由于网络原因&#xff0c;导入公钥始终失败。 导致无法正常使用命令#apt install google-chrome-stable来安装google chrome; 解决办法&#xff1a; Step1.下载当前google chrome稳…

【JavaEE】线程创建和终止,Thread类方法,变量捕获(7000字长文)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯&#xff0c;你们的点赞收藏是我前进最大的动力&#xff01;&#xff01;7000字长文&#xff0c;希望本文内容能够帮助到你&#xff01; 目录 一&#xff1a;创建线程五种方式 方式一&#xff1a;继承Thread类&#xff0c;…

需求2:新加字段

从今天开始&#xff0c;我想把我之前写的一些小的&#xff0c;简单的需求都通过文章的方式写出来&#xff0c;一方面是回顾梳理之前所学的知识&#xff0c;另一方面也是为了方便以后回看&#xff0c;好记性不如烂笔头。 现在的问题是这样的&#xff1a; 涛哥希望&#xff0c;加…

电脑技巧:Win11家庭版和专业版之间的区别详解

目录 一、操作系统安装层面 二、 操作系统安全层面 三、虚拟化和远程功能方面 四、硬件支持方面 五、企业管理方面 六、价格方面 七、软件功能方面 八、适合人群方面 九、如何选择 Windows 11操作系统提供了多个的版本(SKU),包括适合家庭用户的家庭版、适合专业人士…

C++刷怪笼(5)内存管理

一.前言 学习完类和对象之后&#xff0c;我们对C有了基本的了解&#xff0c;但是我们对于C的学习&#xff0c;除了广度&#xff0c;还需要深度&#xff0c;今天让我们走进底层&#xff0c;看看C对其内存是如何进行管理的。 二.正文 我们对这段代码进行详细的分析如下图&#…

微信支付开发-支付工厂H5产品代码

一、H5支付产品、Native支付产品 二、工厂父类抽象类代码开发 <?php /*** 微信父类抽象类* User: 龙哥三年风水* Date: 2024/9/19* Time: 11:33*/ namespace Payment\WechatPay; abstract class WechatPaymentHandle {/*** 下单* User: 龙哥三年风水* Date: 2024/9/19* Ti…

ByteTrack多目标跟踪流程图

ByteTrack多目标跟踪流程图 点个赞吧&#xff0c;谢谢。

Windows安全日志分析(事件ID详解)

目录 如何查看Windows安全日志 常见事件ID列表 事件ID 1116 - 防病毒软件检测到恶意软件 事件ID 4624 - 账户登录成功 事件ID 4625 - 账户登录失败 事件ID 4672 - 为新登录分配特殊权限 事件ID 4688 - 新进程创建 事件ID 4689 - 进程终止 事件ID 4720 - 用户账户创建 …

更高效的搜索工具,国内免费好用的AI智能搜索引擎工具

搜索引擎是我们获取信息的重要渠道&#xff0c;然而由于搜索引擎搜索结果存在较多的广告以及一些无关内容&#xff0c;这使我们的搜索效率变得更低效。小编就和大家分享几款国内免费好用的AI智能搜索工具&#xff0c;提高搜索效率。 1.开搜AI搜索 开搜AI搜索是一款基于深度学…

数字化转型中的企业蓝图构建:基于业务能力建模的全面解读与战略实施指南

随着企业数字化转型的不断深入&#xff0c;业务复杂性和技术需求的多样化推动了企业架构的新变革。为了应对日益复杂的市场环境&#xff0c;如何构建清晰、稳定的业务蓝图成为企业成败的关键。《业务能力指南》为此提供了系统的框架和指导&#xff0c;帮助企业通过业务能力建模…

Rigidbody 组件功能解释

Rigidbody 组件功能解释 质量 (Mass) 定义&#xff1a;质量是物体的重要属性&#xff0c;它决定了物体在受到力作用时的反应。在 Unity 中&#xff0c;质量的单位是千克&#xff08;kg&#xff09;。 默认值&#xff1a;默认情况下&#xff0c;物体的质量是 1 千克。 影响&am…

73. Set Matrix Zeroes

Set Matrix Zeroes Given an m x n integer matrix matrix, if an element is 0, set its entire row and column to 0’s. You must do it in place. https://leetcode.cn/problems/set-matrix-zeroes/ 思路一&#xff1a; 先记录元素为0的下标&#xff0c;设计一个栈&#…

VirtualSurveyor9.2.0 注册机 无人机摄影测量数据处理

Virtual Surveyor9.2 中文版是功能强大的无人机测绘软件&#xff0c;使用旨在为用户提供完整的地理空间数据可视化和分析功能&#xff0c;带来提高的生产力&#xff0c;功能全面而强大&#xff0c;在无人机到CAD模型的过程中&#xff0c;使用Virtual Surveyor9.2软件来拆卸输送…

C语言 14 结构体 联合体 枚举

之前认识过很多种数据类型&#xff0c;包括整数、小数、字符、数组等&#xff0c;通过使用对应的数据类型&#xff0c;就可以很轻松地将数据进行保存了&#xff0c;但是有些时候&#xff0c;这种简单类型很难去表示一些复杂结构。 结构体 比如现在要保存 100 个学生的信息&am…