- 7
- 0
- 约 7页
- 2017-05-27 发布于河南
- 举报
Copy and Swap复制和交换
任何管理某资源的类比如智能指针需要遵循一个规则(The Rule of Three):如果你需要显式地声明一下三者中的一个:析构函数、拷贝构造函数或者是拷贝赋值操作符,那么你需要显式的声明所有这三者。拷贝构造函数和析构函数实现起来比较容易,但是拷贝赋值操作符要复杂许多。它是怎么实现的?我们需要避免那些误区?那么Copy-and-swap就是完美的解决方案。而且可以很好地帮助拷贝赋值操作符达到两个目标:避免代码重复、提供强烈的异常安全保证。1、? 怎么工作概念上讲,它是利用拷贝构造函数生成一个临时拷贝,然后使用swap函数将此拷贝对象与旧数据交换。然后临时对象被析构,旧数据消失。我们就拥有了新数据的拷贝。为了使用copy-and-swap,我们需要拷贝构造函数、析构函数以及swap交换函数。一个交换函数是一个non-throwing函数,用来交换某个类的两个对象,按成员交换。我们可能会试着使用std:swap,但是这不可行。因为std:swap使用自己的拷贝构造函数和拷贝赋值操作符。而我们的目的是定义自己的拷贝赋值操作符。2、? 目的让我们看一个具体的实例。我们需要在一个类中管理一个动态数组。我们需要实现构造函数、拷贝赋值操作符、析构函数。[cpp]?view plaincopyprint?#include?algorithm?//?std::copy??#include?cstdd
您可能关注的文档
- phyml 使用手册 20120306.pdf
- 静态测试-QAC.pdf
- 雅思口语话题素材库:家人篇(Family).pdf
- 食品安全国家标准导入新概念_调制乳_的积极意义_顾佳升.pdf
- 雅思写作之TASK2实用技巧.docx
- 雅思写作教育类话题考点解析.docx
- 雅思考官满分范文:评分标准的完美诠释.pdf
- 雅思口语话题范例:Time.pdf
- 饥荒联机版如何创建本地服务器?.pdf
- 高一英语必修一 unit1 School life(四).pdf
- 2026住宅小区消防改造建筑方案(执行版,含总平面布置/疏散流线/消防节点).docx
- 2026制造工厂人力资源规划与排班配置方案(执行版,含排班模型/岗位编制/缺口清单).docx
- 2026人工智能企业内训实施计划(执行版,含培训安排/案例任务/考核清单).docx
- 2026仓储物流园总平面布置建筑方案(执行版,含车流组织/仓位分区/消防间距).docx
- 2026老旧办公楼节能改造建筑方案(执行版,含围护结构/节能设备/施工节点).docx
- 2026Python文件批量重命名与归档脚本方案(执行版,含文件样例/处理脚本/归档规则).docx
- 2026企业会计准则长期股权投资核算指南(执行版,含成本法分录/权益法分录/减值检查表).docx
- 2026社区养老服务中心项目可行性研究报告(执行版,含服务需求/建设内容/运营预算).docx
- 2026物流园冷链仓储项目可行性研究报告(执行版,含选址分析/设备配置/财务测算).docx
- 2026企业会计准则现金流量表编制口径手册(执行版,含分类口径/填报模板/勾稽检查表).docx
最近下载
- 煤气化和酚水预处理课件.ppt VIP
- 浙教版八年级下数学第一章《二次根式》练习题(含答案).doc VIP
- HJ 397-2007 固定源废气监测技术规范(正式版).pdf VIP
- 培训学校审计报告模板.docx VIP
- 常用基础知识_从基础概念到深入理解的全过程解析.docx VIP
- 铜芯电线电缆载流量标准24页.pdf VIP
- 10以内的加减法测试题打印版.pdf VIP
- 2026江苏省国有资本投资运营集团有限公司招聘备考试题参考答案详解.docx VIP
- 建筑工程部年度工作计划.docx VIP
- 北京现代-名图-产品使用说明书-名图1.6T自动旗舰型(国四)-BH7161PAY-名图1.6T产品使用说明书.pdf VIP
原创力文档

文档评论(0)