- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
7.1.3-1 基本类型数据的浅复制与深复制 7.1.3-1 基本类型数据的浅复制与深复制 7.1.3-2 对象的浅复制与深复制 7.1.3-2 对象的浅复制与深复制 7.1.3-2 对象的浅复制与深复制 7.1.3-2 对象的浅复制与深复制 例7.4 实现深复制 例7.4 实现深复制 例7.4 实现深复制 例7.4 实现深复制 例7.4 实现深复制 7.1.3 对象的浅复制与深复制 7.1.3 对象的浅复制与深复制 7.1.3 对象的浅复制与深复制 7.2 链表与链表的基本操作 * * 浅复制:将一个动态分配的基本类型数据复制给另一个。若只赋值指针值、不复制指向的目标内容,称为浅复制。 图7.1a 浅复制 p2 自由存储区1 p1 复制前 复制后 p1 自由存储区1 p2 自由存储区2 自由存储区2 int *p1=new int [maxsz] ; int *p2=new int [maxsz] ; p2=p1; 深复制:复制指向的目标内容,而非复制指针值,称为深复制。 图7.1b 深复制 p1 自由存储区1 复制前 复制后 p2 自由存储区2 自由存储区1 p1 p2 自由存储区2 int *p1=new int [maxsz] ; int *p2=new int [maxsz] ; int i; for(i=0;i10;i++) *(p2+i)=*(p1+i); 浅复制:调用默认复制构造函数,可用一个类对象初始化另一个类对象,称为默认的按成员复制,而不是对整个类对象的按位复制。这称为浅复制。 图7.1 浅复制 p 自由存储区数据 自由存储区数据 p p 复制前 复制后 如果类中有一个数据成员为指针,该类的一个对象obj1中的这个指针p,指向了动态分配的一个自由存储区数据,(参见图7.1复制前),如果用obj1按成员复制了一个对象obj2,这时obj2.p也指向同一个自由存储区数据。 obj1 obj1 obj2 本质上,对象与复制所得对象共享一个自由存储数据。 即两对象的成员指针一同指向了一个动态数据。 浅复制引发的问题: 图7.1 浅复制 p 自由存储区数据 自由存储区数据 p p 复制前 复制后 obj1 obj1 obj2 当析构时,如用默认的析构函数,则动态分配的自由存储区数据不能回收。如果在析构函数中有“delete p;”语句,则当先析构函数obj1时,自由存储区数据释放,以后再析构obj2时出现了二次释放的问题,反之亦然。 自由存储区数据1 p p 自由存储区数据2 图7.2 深复制 深复制:重新定义复制的构造函数,给每个对象独立分配一个自由存储区并复制数据内容,称深复制。 复制构造过程:先复制对象主体,再为obj2分配一个自由存储区空间,最后将obj1的自由存储区数据逐一复制给obj2的自由存储区空间。 obj1 obj2 【例7.4】定义复制构造函数 (copy structor)和复制赋值操作符(copy Assignment Operator)实现深复制。 学生类定义: class student { char *pName; //为了演示深复制,不用string类 public: student (); //默认构造函数 student ( char *pname );//带参数构造函数 student ( student s); //复制构造函数 ~student ( ); //析构函数 student operator = (student s); //复制赋值操作符 }; 检验主函数和运行结果 默认构造函数: student :: student() { cout Constructor; pName = NULL; cout “缺省“ endl; } 带参数构造函数: student :: student( char *pname ) { cout Constructor; if ( pName = new char [strlen(pname)+1] ) strcpy ( pName, pname ); cout pName endl; } 复制构造函数: student :: student ( student s ) { cout Copy Constructor; if ( s.pName ) { if ( pName = new char [strlen(s.pName)+1] ) strcpy(pName, s.pName); c
您可能关注的文档
- 2相步进电动机PK系列系统构成.PDF
- 2项目管理组织.ppt
- 2月房企业绩普遍不佳,同比大幅下滑.PDF
- 2制作原木画工具和使用.doc
- 3.1化学工作辅助工具.PDF
- 3.2.5材料设备表和预算表编制.docx
- 3.2《文化在交流中传播》.doc
- 3D互动游戏制作供方资格评审文件.doc
- 3D可视型激光雷达技术规格书.PDF
- 3D列印在生医上应用.PDF
- 专题04 天气与气候(期末真题汇编,广东专用)(解析版).docx
- 专题04 中国的经济发展(百题精选)(期末真题汇编)(原卷版).docx
- 专题05 建设美丽中国(专项训练)(原卷版).docx
- 专题05 建设美丽中国(专项训练)(解析版).docx
- 专题05 居民与文化 发展与合作(百题精选)(期末真题汇编)(解析版).docx
- 2024年下半年教师资格考试中学《教育知识与能力》真题(含答案和解析).docx
- 专题05 居民与文化 发展与合作(百题精选)(期末真题汇编)(原卷版).docx
- 专题05 居民与文化 发展与合作(期末真题汇编,广东专用)(解析版).docx
- 专题05 居民与文化 发展与合作(期末真题汇编,广东专用)(原卷版).docx
- 统编版七年级语文上册课件《雨的四季》.pptx
最近下载
- 《邀请信教学设计》教学设计.doc VIP
- 蓝光控制系统SJT-WVF5-B电梯电气原理图.pdf VIP
- 建设监理调查报告.doc VIP
- 2025年中国铁路南宁局集团有限公司人员招聘笔试备考题库及答案解析.docx VIP
- 2025届七上蜀光 数学课堂手册-学生版.pdf VIP
- 高锁螺栓自动化安装系统CFNT1003CY5-CFNT1003CY6技术说明.pdf
- 蓝光BL6-9.03EN版集约串行解决方案SJT-WVF5E电气原理图纸.pdf
- 2025-2026学年粤教粤科版(2024)小学科学三年级上册(全册)教学设计(附目录 P182) .docx
- 电机拖动应用技术第2章知识点回顾总结.docx VIP
- 蓝光BL及BL培训总汇讲解.ppt VIP
有哪些信誉好的足球投注网站
文档评论(0)