[转载] 深层复制构造函数和浅层复制构造函数区别
参考链接: Python复制(深层复制和浅层复制)
构造函数用来初始化对象的,复制构造函数是把一个已知的对象复制给新的对象,(2者都是对象)。
浅复制构造函数只复制指针(换句话说就是2个对象的地址一样),例如
class A
{
pubic:
A(){x = new int; *x = 8;}
A(const A &a)
{
x = a.x //浅层复制构造函数
}
~A(){delete x; x = NULL;}
private:
int *x;
}
深复制构造函数定义内new了一个新地址,因此2个对象的地址不一样,析构2个对象的时候不会象浅复制构造函数那样重复析构一个地址了。例如
class A{pubic: A(){x = new int; *x = 8;} A(const A &a) { x = new int; //注意区分x,这个x是复制的对象中的指针x *x = *(a.x) //浅深层复制构造函数 } ~A(){delete x; x = NULL;}private:int *x;} 重点是区分概念,和区分x,要不很容易混乱另外补加一个小概念,对于高大上的“级连”,比如说cout语句能实现级连,就是指提取运算符"<<"能连续使用,例如cout<<x<<y<<z;这里的"<<"用了三次
[转载] 深层复制构造函数和浅层复制构造函数区别相关推荐
- JAVA浅层复制深层复制理解-java_01_20160824
在java中,默认是浅层复制的,如果要复制的对象中只含有基本数据类型和String类型, 那么浅层复制和浅层复制是没有区别的,所以你可以放心的使用默认的浅层复制, 但是如果要复制的对象中除了上述类型还 ...
- java对象复制_Java对象的深层复制与浅层复制
TestVO a = new TestVO(); a.setName("xiemingmei"); a.setBirthPlace("Hunan"); Test ...
- C#.Net工作笔记007---关于Lst深层复制_浅层复制_提供一个方法可以直接使用
技术交流QQ群[JAVA,C++,Python,.NET,BigData,AI]:170933152 1.关于深拷贝和浅拷贝 C#支持两种类型:值类型和引用类型 值类型(Value Type):如 c ...
- 如何在JavaScript中区分深层副本和浅层副本
by Lukas Gisder-Dubé 卢卡斯·吉斯杜比(LukasGisder-Dubé) 如何在JavaScript中区分深层副本和浅层副本 (How to differentiate betw ...
- SSD浅层网络_目标检测SSD
一.目标检测之SSD SSD: Single Shot MultiBox Detector 论文链接:https://arxiv.org/abs/1512.02325 论文翻译:https://blo ...
- python中复制、浅层拷贝、深层拷贝的区别
python中复制.浅层拷贝.深层拷贝的区别 一.学习要点: 1.python中的复制与拷贝的区别 2.python中浅层拷贝与深层拷贝的区别 二.代码: import copy a=[1,2,3,4 ...
- C++深复制(深拷贝)、浅复制(浅拷贝)和复制构造函数(拷贝构造函数)详解+实例
转载出处:https://blog.csdn.net/sxhelijian/article/details/23209967 对象的复制 对于普通类型的对象来说,它们之间的复制是很简单的,例如: in ...
- java中浅层克隆和深层克隆
1.浅复制与深复制概念 浅复制(浅克隆) 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象.换言之,浅复制仅仅复制所考虑的对象,而不复制它所引用的 ...
- 浅层学习与深层学习_深层副本与浅层副本-以及如何在Swift中使用它们
浅层学习与深层学习 by Payal Gupta 通过Payal Gupta 深层副本与浅层副本-以及如何在Swift中使用它们 (Deep copy vs. shallow copy - and h ...
最新文章
- 如何挂载initrd.img文件(简单三步)
- JUnit4中使用Hamcrest测试框架的assertThat断言 小实例
- 1053 Path of Equal Weight
- 中秋水文 | 安利一发国漫
- C# 中使用HttpClient读取大型Json数据集
- android edittext 不滚动,EditText 设置可以垂直滑动但是不可输入
- RTT时钟管理篇——RTT定时器超时判断理解
- gps天线拆解图片_飞宇稳定器拆解:握杆的手,不怕颤抖
- python学习笔记之lambda表达式
- 阿里技术副总裁贾扬清、微软 CTO 韦青重磅出席 AI 开发者大会!
- c++11 多线程编程(四)------ 死锁(Dead Lock)
- (附源码)PHP疫情上报管理系统 毕业设计 170948
- foo, bar, 甲乙丙丁
- 米 html像素转换,字体磅、像素、厘米转换
- 桌面IE不见的处理方法
- python人民币小写转大写_python人民币小写转大写辅助工具
- 使用RDO Packstack在CentOS 8上安装版本为Victoria的openstack
- 微信小程序识别二维码
- 解决APP抓包问题【网络安全】
- python英语单词 扇贝英语安卓下载_扇贝单词英语版
热门文章
- 我的世界javamod怎么装_耐斯地板 | 木地板的铺装方向,你还不知道?
- qoq是什么意思的缩写_有意思,“TTFN”居然是“再见”的缩写词,具体是指什么呢?...
- Python入门--变量,浮点型,布尔型,字符串
- combing string
- 如何才能在jsp文件中使用el表达式
- SPFA差分约束(bzoj 2330: [SCOI2011]糖果)
- opencv 实现图像高斯金字塔
- opencv 显示程序运行时间
- matlab2c使用c++实现matlab函数系列教程-cos函数
- labelme批量json_to_dataset转换