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

网站备案号是什么吴江建设局房产网站

网站备案号是什么,吴江建设局房产网站,wordpress 主题打包,旅行社网站建设设计公司哪家好文章目录 条款 11:在 operator 中处理“自我赋值”核心问题示例:使用地址比较示例:copy-and-swap 技术设计建议总结 条款 11:在 operator 中处理“自我赋值” 核心问题 自我赋值风险 如果赋值操作符没有处理自我赋值(…

文章目录

    • 条款 11:在 `operator=` 中处理“自我赋值”
      • 核心问题
      • 示例:使用地址比较
      • 示例:`copy-and-swap` 技术
      • 设计建议
      • 总结

条款 11:在 operator= 中处理“自我赋值”

核心问题

  • 自我赋值风险
    如果赋值操作符没有处理自我赋值(a = a),可能会导致未定义行为,如内存泄漏或数据损坏。

  • 检查方法
    operator= 中处理自我赋值的常见技术包括:

    1. 比较源对象和目标对象的地址。
    2. 使用 copy-and-swap 技术。

示例:使用地址比较

通过检查对象地址来处理自我赋值:

class Bitmap { ... };class Widget {
private:Bitmap* pb;  // 指针,指向一个从堆分配的对象public:Widget& operator=(const Widget& rhs) {if (this == &rhs) return *this;  // 检查自我赋值Bitmap* pOrig = pb;             // 记住原先的 pbpb = new Bitmap(*rhs.pb);       // 为 rhs.pb 分配新内存并复制delete pOrig;                   // 释放原先的内存return *this;}
};

关键点:

  1. 通过 if (this == &rhs) 检查自我赋值。
  2. 延迟删除原数据,确保新数据分配成功后再清理旧数据。

示例:copy-and-swap 技术

通过复制源对象并交换数据,可以简化逻辑并避免自我赋值问题:

class Widget {
private:Bitmap* pb;  // 指针,指向一个从堆分配的对象public:void swap(Widget& rhs) {  // 交换 *this 和 rhs 的数据std::swap(pb, rhs.pb);}Widget& operator=(const Widget& rhs) {Widget temp(rhs);  // 创建 rhs 的副本swap(temp);        // 交换副本和当前对象的数据return *this;}
};

关键点:

  1. copy-and-swap 自动处理自我赋值,因为副本创建在交换之前完成。
  2. 保证异常安全性:即使复制过程抛出异常,当前对象的状态仍然未被修改。

设计建议

  1. 自我赋值检查

    • 使用 if (this == &rhs) 明确检查。
    • 或采用 copy-and-swap 技术隐式避免自我赋值。
  2. 异常安全性

    • 在修改现有数据之前完成所有可能失败的操作(如动态分配内存)。
  3. 效率与灵活性

    • 对于简单类,直接地址比较可能更高效。
    • 对于复杂类,copy-and-swap 提供更高的代码复用性和易读性。

总结

  • 自我赋值是一种特殊情况,必须在 operator= 中妥善处理。
  • 可以通过地址比较和 copy-and-swap 技术来解决这一问题。
  • 采用合理的实现方式,确保代码的安全性、可维护性和异常处理能力。
http://www.yayakq.cn/news/664256/

相关文章:

  • 网站制作公司有哪些证wordpress 建多站
  • 济宁网站建设平台简单5步_制作wordpress留言板
  • 单网页网站内容网上免费自己设计商标
  • 微信建站网站新网建站教程
  • 移动网站做微信小程序网站内容段落之间有空格对seo有影响吗
  • 温州网站制作报价如何从零开始学室内设计
  • 网站空间建设安庆网站开发人员
  • 织梦网站做seo优化杭州津伟网络科技有限公司
  • 建设企业网站的好处是什么网站安全检测中的安全事件监测包含哪些监控指标
  • 常州公司做网站如何注册一个网站域名
  • 中小型企业建设网站手机单页网站
  • 做视频可以赚钱的网站生成网站 目录
  • 高端集团网站建设公司114啦网址导航官网
  • 企业网站 asp源码下列关于网站开发中网页额
  • 怎么做王者荣耀网站中国广播电视总台官网
  • 长春网站制作报价犀牛网站建设公司
  • 网站怎么做翻页系统管理中心
  • 手机网站图片切换jquery如何生成一个网站
  • 我的手机网站公司介绍模板简短
  • 外贸网站建站多少钱大型网站建设需要
  • 房产汽车网站模板瀑布流资源网站模板
  • 天津网站优化论坛类网站设计
  • 莒南建设局网站哪个网站做ic外单好
  • 站牛网做影视网站不备案
  • 做ghost系统的网站有哪些建行网站网址
  • 做网站划算还是做app划算义乌的论坛网站建设
  • 影院网站建设主管招聘广告模板
  • 人流什么时间做 新闻源网站企业邮箱格式
  • 企业免费建网站过年wordpress主机
  • 企业网站制作收费网络营销活动推广方式