关于shallow copy

简介:

shallow copy (浅拷贝)是一种节省资源的方式,是一种write_on_copy,qt中很多的类(大部分是内存分配需要很多的类)都实现了shallow copy,比如 qimage类,让两个实例qimage a和qimage b,令a=b,则事实上,a并没有完全复制了一份b的所有信息,它只是在计数器上增加了一个对同一片内存的指向(当然也并非指针相等),如果a和b之中没有人进行改变,将一直共享一份内容,但当其中过一个发生改变时,它会自动复制一份这份信息的内容,作为自己的无论怎样修改都行,也不回影响到其他的实例。

比如Qimage*a -new Qimage(); QImage b=*a;delete a,这个过程时这样的,开始a初始化了一块内存来表示一个qimage,然后b和a公用这个信息,计数器变为2,最后a不在了,计数器变一,b独享这份内容,此时a和b初始时的地址时一样的。

目录
相关文章
|
缓存 监控 Java
高并发编程之ThreadPool 线程池
高并发编程之ThreadPool 线程池
239 1
|
安全 调度 C++
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)(二)
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)
1384 0
|
人工智能 算法 程序员
对于程序员而言,技术能力和业务逻辑哪个重要?这是一个问题!
在当今高度数字化和技术驱动的时代,以及人工智能快速发展的时刻,程序员作为技术领域的从业者,必须同时具备扎实的技术能力和深入的业务逻辑理解。然而,对于程序员来说,技术能力和业务逻辑的重要性却是一个值得探讨的问题。与此同时,对于许多开发者而言,他们在日常工作中经常面临一个困境:专注于解决业务问题,无法抽身提升个人的技术能力,这种焦虑和苦恼是常见的,因为在软件开发领域,业务的理解和技术的提升都是至关重要的。那么本文就来从不同角度分析技术能力和业务逻辑的重要性简单聊聊。
638 1
对于程序员而言,技术能力和业务逻辑哪个重要?这是一个问题!
|
前端开发 JavaScript API
微信公众号项目,实现微信支付(具体流程和参数)
微信公众号项目,实现微信支付(具体流程和参数)
|
传感器 数据采集 安全
LabVIEW编程控制ABB机械臂
LabVIEW编程控制ABB机械臂
286 0
|
网络协议 网络性能优化 网络架构
计算机网络—IP地址与子网划分
计算机网络—IP地址与子网划分
|
Web App开发 人工智能 安全
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
|
JavaScript Java 关系型数据库
宠物救助系统|基于Springboot和vue的流浪猫狗救助救援系统设计与实现(源码+数据库+文档)
宠物救助系统|基于Springboot和vue的流浪猫狗救助救援系统设计与实现(源码+数据库+文档)
433 0
导致代理ip速度慢的原因
导致代理ip速度慢的原因
173 0
|
存储 自然语言处理 搜索推荐
HarmonyOS学习路之开发篇—数据管理(融合搜索)
HarmonyOS融合搜索为开发者提供搜索引擎级的全文搜索能力,可支持应用内搜索和系统全局搜索,为用户提供更加准确、高效的搜索体验。