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

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;
//}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (PySpark)RDD实验实战——求商品销量排行
  • 2024年华为杯-研赛F题论文问题一二讲解+代码分享
  • LabVIEW多语言支持优化
  • 基于python上门维修预约服务数据分析系统
  • 【Linux课程学习】make/Makefile:Linux项目自动化构建工具
  • 英语六级-学习
  • redis单点、主从、哨兵、集群的不同
  • WPF DataGrid 赋值与修改
  • 生活小助手系统小程序的设计
  • 灵当CRM系统index.php存在SQL注入漏洞
  • sicp每日一题[2.20]
  • MySQL基础基础篇 - SQL
  • 数据结构:内部排序
  • spark 面试题
  • Linux 防火墙:iptables (二)
  • #Java异常处理
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • Java IO学习笔记一
  • Javascripit类型转换比较那点事儿,双等号(==)
  • javascript 总结(常用工具类的封装)
  • JavaScript异步流程控制的前世今生
  • Java程序员幽默爆笑锦集
  • LintCode 31. partitionArray 数组划分
  • Service Worker
  • vue总结
  • 提醒我喝水chrome插件开发指南
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • ​​​​​​​​​​​​​​Γ函数
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • #13 yum、编译安装与sed命令的使用
  • #include
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (zhuan) 一些RL的文献(及笔记)
  • (回溯) LeetCode 131. 分割回文串
  • (面试必看!)锁策略
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • []C/C++读取串口接收到的数据程序
  • [Android Studio 权威教程]断点调试和高级调试
  • [Angular 基础] - 指令(directives)
  • [c#基础]DataTable的Select方法
  • [C++][opencv]基于opencv实现photoshop算法可选颜色调整
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [CSS]浮动
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理
  • [Docker]十.Docker Swarm讲解
  • [emacs] CUA的矩形块操作很给力啊