关于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 线程池
219 1
|
人工智能 算法 程序员
对于程序员而言,技术能力和业务逻辑哪个重要?这是一个问题!
在当今高度数字化和技术驱动的时代,以及人工智能快速发展的时刻,程序员作为技术领域的从业者,必须同时具备扎实的技术能力和深入的业务逻辑理解。然而,对于程序员来说,技术能力和业务逻辑的重要性却是一个值得探讨的问题。与此同时,对于许多开发者而言,他们在日常工作中经常面临一个困境:专注于解决业务问题,无法抽身提升个人的技术能力,这种焦虑和苦恼是常见的,因为在软件开发领域,业务的理解和技术的提升都是至关重要的。那么本文就来从不同角度分析技术能力和业务逻辑的重要性简单聊聊。
611 1
对于程序员而言,技术能力和业务逻辑哪个重要?这是一个问题!
|
安全 调度 C++
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)(二)
C++ std::chrono库使用指南 (实现C++ 获取日期,时间戳,计时等功能)
1350 0
|
9月前
|
人工智能 测试技术 数据处理
通义灵码 2.0 体验报告:Deepseek 加持下的 Python 开发之旅
通义灵码 2.0 体验报告:Deepseek 加持下的 Python 开发之旅
425 11
|
9月前
|
数据采集 存储 前端开发
用Python抓取亚马逊动态加载数据,一文读懂
用Python抓取亚马逊动态加载数据,一文读懂
|
测试技术 开发工具 git
【git 实用指南】Git提交指南:如何制定团队友好的提交规则
【git 实用指南】Git提交指南:如何制定团队友好的提交规则
646 0
|
Web App开发 人工智能 安全
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
Gemini vs ChatGPT:谷歌最新的AI和ChatGPT相比,谁更强?
|
JavaScript Java 关系型数据库
宠物救助系统|基于Springboot和vue的流浪猫狗救助救援系统设计与实现(源码+数据库+文档)
宠物救助系统|基于Springboot和vue的流浪猫狗救助救援系统设计与实现(源码+数据库+文档)
410 0
|
监控 Java 数据挖掘
用Java代码打造游戏反作弊系统
用Java代码打造游戏反作弊系统
516 0
|
C++
Visual Studio 2019 设置手动触发 clang-format 格式化
合作开发时,.clang-format 文件会在编写代码的过程中自动执行格式化,触发某些条件将自动格式化整个文件,有可能导致代码冲突的概率提升,也会造成编码时的不便。
1677 0
Visual Studio 2019 设置手动触发 clang-format 格式化