关于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初始时的地址时一样的。

目录
相关文章
|
10月前
|
JSON 数据格式
|
8月前
|
Python
Python 中浅拷贝(copy)和深拷贝(deepcopy)
Python 中浅拷贝(copy)和深拷贝(deepcopy)
|
9月前
|
C++
C++ 实现一个不能被copy的类
C++ 实现一个不能被copy的类
|
9月前
|
存储 Python
copy
【6月更文挑战第10天】
53 0
|
10月前
|
Python
|
10月前
|
算法 C++ 容器
【C++11算法】find_if_not、 copy_if、copy_n
【C++11算法】find_if_not、 copy_if、copy_n
187 0
|
Python
python编程比较copy方法与deepcopy方法,教你如何深度复制字典?
python编程比较copy方法与deepcopy方法,教你如何深度复制字典?
118 0
LeetCode 106. Construct Binary Tree
给定一颗二叉树的中序和后续遍历,构造原二叉树。 注意:您可以假设树中不存在重复项。
108 0
LeetCode 106. Construct Binary Tree
|
C++
Effective C++学习笔记之copy构造函数和default函数和copy赋值函数(operator=)
Effective C++学习笔记之copy构造函数和default函数和copy赋值函数(operator=)
161 0