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

北京哪个网站做兼职比较好网站建设 点指成名

北京哪个网站做兼职比较好,网站建设 点指成名,台州住房和城乡建设部网站,外贸网站 栏目目录 一、浅拷贝 1.定义 2.示例 3.问题 二、深拷贝 1.定义 2.示例 3.优点 三、考虑场景 浅拷贝的考虑 1.性能要求 2.简单地数据结构 3.资源管理 深拷贝的考虑 1.动态内存分配 2.复杂数据结构 3.资源管理 总结 一、浅拷贝 1.定义 浅拷贝是指对对象进行复制时…

目录

一、浅拷贝

1.定义

2.示例

3.问题

二、深拷贝

1.定义

2.示例

3.优点

三、考虑场景

浅拷贝的考虑

1.性能要求

2.简单地数据结构

3.资源管理

深拷贝的考虑

1.动态内存分配

2.复杂数据结构

3.资源管理

总结


一、浅拷贝

1.定义

浅拷贝是指对对象进行复制时,只是简单地复制对象中的每个成员的值,包括基本数据类型和指针。对象的指针成员被复制,但它们仍然指向相同的内存地址

2.示例

#include <iostream>class ShallowCopyExample {
public:int *data;ShallowCopyExample(int val) {data = new int(val);}// 浅拷贝构造函数ShallowCopyExample(const ShallowCopyExample &other) : data(other.data) {}~ShallowCopyExample() {delete data;}
};int main() {ShallowCopyExample obj1(42);ShallowCopyExample obj2 = obj1; // 浅拷贝发生在这里std::cout << *obj1.data << std::endl; // 输出:42std::cout << *obj2.data << std::endl; // 输出:42,因为共享相同的内存地址// 当 obj1 被销毁时,obj2.data 指向的内存就变成了悬空指针return 0;
}

3.问题

当两个对象共享相同的内存地址时,一个对象的改变会影响另一个对象。在销毁其中一个对象时,可能会导致悬空指针的问题。

二、深拷贝

1.定义

深拷贝是指在对象赋值时,为对象的每一个指针成员分配新的内存,新的内存内存放源对象的副本。两个对象相互独立,对一个对象的修改不会影响到另一个对象。

2.示例

#include <iostream>class DeepCopyExample {
public:int *data;DeepCopyExample(int val) {data = new int(val);}// 深拷贝构造函数DeepCopyExample(const DeepCopyExample &other) : data(new int(*(other.data))) {}~DeepCopyExample() {delete data;}
};int main() {DeepCopyExample obj1(42);DeepCopyExample obj2 = obj1; // 深拷贝发生在这里std::cout << *obj1.data << std::endl; // 输出:42std::cout << *obj2.data << std::endl; // 输出:42,因为拷贝了新的内存// 当 obj1 被销毁时,obj2.data 不受影响return 0;
}

3.优点

避免了浅拷贝可能导致的共享内存的问题,提高程序的安全性。并且对象是相互独立的,不会出现悬空指针和内存泄漏的问题。

注意:

  • 对于包含复杂结构的对象,需要正确实现深拷贝构造函数和析构函数。
  • 深拷贝可能会导致性能开销,因为需要额外的内存分配和复制操作。

三、考虑场景

深拷贝和浅拷贝的选择取决于程序的需求、数据结构的设计等等。下面是一些情况下考虑使用深拷贝或浅拷贝的情景:

浅拷贝的考虑

1.性能要求

浅拷贝通常比深拷贝更高效,因为它只是简单地复制指针而不涉及到动态内存的分配和复制。对性能要求较高的情况下,会选择浅拷贝。

2.简单地数据结构

当对象中只包含基本数据类型或者没有动态分配内存的情况喜爱,浅拷贝可能足够满足需求,并且实现起来比较简单。

3.资源管理

当使用者不希望负责对象中的资源管理时,浅拷贝可以更合适。

深拷贝的考虑

1.动态内存分配

当类中包含指针成员,并且这些指针指向动态分配的内存时,通常考虑使用深拷贝,以避免对个对象共享相同的内存地址。

2.复杂数据结构

当对象包含复杂的结构、子对象或容器时,深拷贝可以确保所以层次的数据都能正确地进行复制。

3.资源管理

当使用者需要负责管理对象中的资源时,深拷贝通常是更合适的选择,因为它将资源的控制权交给了拷贝的对象。

总结

总的来说,深拷贝是一种更安全的拷贝方式,尤其在涉及到动态内存分配时,可以避免悬空指针和内存泄漏的问题。不过,具体选择深拷贝还是浅拷贝取决于具体的需求和对象的结构,有的情况下选择浅拷贝会更合适。

http://www.yayakq.cn/news/389897/

相关文章:

  • 游戏网站做代理网站开发找公司好还是个人
  • 剑阁县规划和建设局网站wordpress 自定义投稿
  • 博客网站做啥好宁波市北仑区建设局网站
  • 厦门网站建设小程序开发网站页面设计与制作实践
  • 支付网站建设2022年重大时政热点
  • 运转灵活小企业网站建设长沙楼市最新消息
  • 建设公司网站有用吗安徽信息工程学院信息门户平台
  • 国外可以做推广的网站吗成都物流网站建设
  • asp.net网站的404错误页面电商直播
  • 深圳教育平台网站建设做平面那个网站素材好
  • 哪个网站能帮助做路书微信公众号搭建网站
  • 国外域名的网站怎么做上海哪个网站能应聘做家教的
  • 网站制作和网页制作区别鞍山seo优化
  • 给手机做网站的公司有哪些招商加盟网
  • 传奇网站模板免费下载如何开发wordpress子主题
  • 商务网站设计实训总结注册一个app平台需要多少钱
  • 网站开发设计思想报告a站app
  • 怎么查寻一个网站做的竞价广西建设厅培训中心官网
  • 做环卫设备都有哪些网站wordpress转手机
  • 网站你懂我意思正能量晚上在线下载免费软件魅族常用的品牌策划公司
  • 做ic芯片的要去哪个网站富阳房产网
  • 网站建设毕设企业起名
  • 网站开发需要的知识揭阳网站制作找哪家
  • 电子商务网站建设完整详细流程网站编辑怎么做内容分类
  • 瓷砖网站模板成都网页制作推广
  • 中国国防建设网站国家企业信用信息公示系统查询
  • 江苏省城乡与建设厅网站微网站怎么做百度关键词
  • 天津电子商务网站临沂网站建设设计公司
  • 在线生成个人网站源码WordPress 收款方案
  • 山西营销网站建设设计wordpress 执行效率