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

沈阳建设网站公司线上推广方式有哪些

沈阳建设网站公司,线上推广方式有哪些,石家庄最新疫情最新消息解封,刷QQ砖的网站咋做问题 深拷贝和浅拷贝的区别是面试中的常见问题之一,对于不同的编程语言,这个问题的回答可能稍有差别,下面我们就来探索一下它们之间的异同吧。 先来看看在JavaScript对象的深拷贝与浅拷贝的区别: 浅拷贝:只是复制了…

问题

深拷贝和浅拷贝的区别是面试中的常见问题之一,对于不同的编程语言,这个问题的回答可能稍有差别,下面我们就来探索一下它们之间的异同吧。

先来看看在JavaScript对象的深拷贝与浅拷贝的区别:

浅拷贝:只是复制了指向某个对象的指针,而不是复制对象本身,因此浅拷贝后新旧对象还是共用同一块内存,旧对象改变会修改新对象的值

深拷贝:会另外构造一个与旧对象一模一样的对象,新旧对象不共享内存旧对象改变不会修改新对象的值

理解了上面的内容,可以说已经理解了深拷贝和浅拷贝的本质区别了。但是,如果面试官是问你在C++中深拷贝和浅拷贝是和拷贝的区别,上面的回答可能还不能让面试官满意哦。在C++中,要说出深拷贝和浅拷贝的区别,想必是需要提到拷贝构造函数这个概念才能让面试官满意的。既然如此,那我们就不妨来看看C++中怎么说的吧。

浅拷贝

浅拷贝,也称为位拷贝。C++中的浅拷贝是通过拷贝构造函数来实现的,如果程序员不主动编写拷贝构造函数和赋值函数,编译器将以浅拷贝的方式自动生成缺省的函数,也就是在拷贝时简单地复制某个对象的指针,这样很容易造成一些问题。

例如,假设String类有两个对象a和b,a.data的内容为“hello”,b.data为“world”,当将a的值赋给b时,可能会出现以下3个问题:

① b.data的内存没释放,造成内存泄漏

② b.data和a.data指向了同一块内存,a或b任何一方的值改变都会修改另一方的值

在对象被析构时,data被释放了两次

看看下面的代码来理解一下:

//假设有一个String类
String a("hello");
String b("world");
//调用了拷贝构造函数,不过这里最好写成 string c(a),a原本的内存没有释放,且a或c改变都会影响另一方
String c = a;
c=b;				//调用了赋值函数

深拷贝

深拷贝必须显示地提供拷贝构造函数和赋值运算符,而且新旧对象不共享内存,也就是说,在编写拷贝构造函数时会开辟一个新的内存空间。那什么时候会使用深拷贝?

①一个对象以值传递的方式传入函数体

②一个对象以值传递的方式从函数体返回

③一个对象需要通过另外一个对象进行初始化

总结

C++中,浅拷贝不需要自己实现,编译器会自动生成缺省的拷贝构造函数,浅拷贝新旧对象共享一块内存,任何一方的值改变都会影响另一方;深拷贝需要自己手动编写拷贝构造函数,深拷贝新旧对象不共享内存。

参考资料

浅拷贝与深拷贝的区别

C++细节 深拷贝和浅拷贝(位拷贝)详解

http://www.sczhlp.com/news/28309/

相关文章:

  • Scrum Master角色解析与敏捷团队管理
  • 如何做网站霸屏新闻摘抄2022最新5篇
  • 品牌营销策划网站网络营销最主要的工具是
  • wordpress评论楼seo网络推广到底是做什么的
  • 石家庄网站建设seo优化营销品牌宣传的推广
  • 安徽建设通网站培训班有哪些
  • wordpress调用特定分类文章南昌seo排名公司
  • 做网站的都是直男癌吗优质网站
  • 判断某个属性是否为值类型
  • [ARC151C] 01 Game
  • 做100个网站效果图网络口碑推广公司
  • 做网站哪里的好厦门人才网唯一官网
  • 做网站好还是做商城好网站建设是什么工作
  • 昆明网站做网页设计素材
  • 建设网站需要花费什么费用友情链接交换网址大全
  • 25-暑期-来追梦noip-卷7 总结
  • 宜兴SAP:哲讯科技驱动企业智慧转型的新引擎
  • 笛卡尔树分治
  • 芯片封装遇上SAP:哲讯科技助力半导体产业智造升级
  • 网站建设找酷风长沙百度关键词推广
  • 培训网站建设方案模板下载如何做营销策划方案
  • 个人怎么样做网站百度网站打开
  • 在线注册个体工商户网站seo诊断分析
  • 青岛做物流网站网络营销的优势和劣势
  • 建设一个网站所需要注意的百度搜索推广登录入口
  • 网站前台和后台搜狗登录入口
  • 把网站做静态化厦门seo外包公司
  • 什么软件可以找做网站的国内快速建站
  • 哈尔滨网站如何制作专业做网络推广的公司
  • 北京市建设和住房委员会官方网站音乐接单推广app平台