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

云南建设厅网站执业注册网站在线交谈

云南建设厅网站执业注册,网站在线交谈,网络营销该如何发展,电子商务推广怎么做目录 一、默认拷贝构造函数的陷阱(浅拷贝) 二、自定义拷贝构造函数(深拷贝) 三、深拷贝与浅拷贝对比 四、注意事项 一、默认拷贝构造函数的陷阱(浅拷贝) class MyString { private:char* ptr; // 指向…

目录

一、默认拷贝构造函数的陷阱(浅拷贝)

二、自定义拷贝构造函数(深拷贝)

三、深拷贝与浅拷贝对比

四、注意事项


一、默认拷贝构造函数的陷阱(浅拷贝)
class MyString {
private:char* ptr;  // 指向动态分配的内存
public:// 默认拷贝构造函数(按位拷贝)MyString(const MyString &st) : ptr(st.ptr) {} // 浅拷贝:仅复制指针地址
};

问题分析:

  • 浅拷贝本质:直接复制指针值,新旧对象共享同一块内存。

  • 致命缺陷

    1. 重复释放:析构时多个对象尝试释放同一内存,导致崩溃。

    2. 悬空指针:一个对象释放内存后,其他对象指针失效。

    3. 数据篡改:通过任意对象修改内容,影响所有共享对象。


二、自定义拷贝构造函数(深拷贝)
class MyString {
private:char* ptr;
public:// 构造函数:动态分配内存MyString(const char* str = nullptr) {if (str) {int len = strlen(str);ptr = new char[len + 1];strcpy(ptr, str);} else {ptr = new char[1];*ptr = '\0';}}// 深拷贝构造函数MyString(const MyString& st) {if (st.ptr) {int len = strlen(st.ptr);ptr = new char[len + 1];       // 独立分配新内存memcpy(ptr, st.ptr, len + 1);  // 复制内容而非指针(比strcpy更高效)} else {ptr = nullptr;  // 处理空指针边界条件}}// 析构函数:安全释放内存~MyString() {delete[] ptr;  // delete[] 匹配 new[]ptr = nullptr; // 避免悬空指针}
};

关键改进:

  1. 独立内存分配:每个对象持有独立内存块。

  2. 内容复制:使用memcpystrcpy确保数据完整性。

  3. 边界处理:明确处理空指针输入场景。


三、深拷贝与浅拷贝对比
特性浅拷贝深拷贝
内存共享是(多个对象指向同一内存)否(每个对象拥有独立内存)
安全性低(重复释放/悬空指针)高(内存隔离)
适用场景无动态内存管理的简单类型(如int)含指针/动态资源的类(如字符串)
实现复杂度自动生成(无需编码)需显式实现拷贝构造/赋值运算符

四、注意事项
  1. 三人行
    若自定义拷贝构造函数、拷贝赋值运算符或析构函数中的一个,必须显式实现三者。

  2. 优先使用std::string
    避免手动管理内存,直接利用标准库的深拷贝能力。

  3. 深拷贝工具优化

    • 使用memcpy替代strcpy提升大内存块复制效率。

    • 添加nullptr检查防止未定义行为。

http://www.dtcms.com/a/429073.html

相关文章:

  • 五网合一网站建设网站报备之后如何建设网站
  • 用织梦的网站怎么做推广深圳带停机坪的别墅
  • 广州网站建设骏域网站建设专业网站排名
  • 聊城seo整站优化报价wordpress 批量定时发布
  • 网站域名记录值做彩票网站需要什么
  • 扬州电子商务网站建设h5制作平台官网免费
  • 怎么做二维码让别人扫码进入网站制作h5页面的工具有哪些
  • 广州网站优化建设网站在线搭建系统
  • 网站建设公司怎么运营网络广告策划公司
  • RAG Day06 查询重建
  • 建设银行给税对账在什么网站南宁网站忧化
  • 营销网站制作郑州买外贸服装去哪个网站
  • 【开放root权限】中兴B860AV3.2-T_B860AV3.1-T2高安及非高安版本当贝桌面固件下载
  • qq空间关闭申请网站中山网站建设电话
  • 廊坊电子商务网站建设wordpress不用插件
  • 迪捷软件亮相第四届全球数字贸易博览会
  • 株洲网站建设报价方案网站建设技术思维导图
  • 怎么做淘宝联盟网站圣宠宠物网站建设
  • 介休市网站建设公司野望原文及翻译
  • 国外推广国内网站北滘网站建设公司
  • 学院网站建设项目的成本计划沈阳开发网站公司哪家好
  • 金融网站织梦模板免费下载网络推广公司怎么赚钱的
  • 网站地图做法做wap站点
  • 网站规划设计的一般流程枣庄网络推广公司
  • 莘县做网站推广cms仿站教程
  • 精彩网站制作手机网站有什么好处
  • dede网站不能运行php文件回力网站建设初衷
  • 天津001
  • 建设通网站上的业绩能否删除掉电子商务网站的规划与建设论文
  • 网站建设项目需求费用怎么找广告商接广告