zoukankan      html  css  js  c++  java
  • 字符串类QString

    1.浅拷贝:

       浅拷贝就比如像引用类型

       浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。对其中任何一个对象的改动都会影响另外一个对象。举个例子,一个人一开始叫张三,后来改名叫李四了,可是还是同一个人,不管是张三缺胳膊少腿还是李四缺胳膊少腿,都是这个人倒霉。

     

    2.深拷贝:

       而深拷贝就比如值类型。

      深拷贝是指源对象与拷贝对象互相独立,其中任何一个对象的改动都不会对另外一个对象造成影响。举个例子,一个人名叫张三,后来用他克隆(假设法律允许)了另外一个人,叫李四,不管是张三缺胳膊少腿还是李四缺胳膊少腿都不会影响另外一个人。比较典型的就是Value(值)对象,如预定义类型Int32Double,以及结构(struct),枚举(Enum)等。

    3.隐式共享:

      隐式共享又叫做回写复制。当两个对象共享同一份数据时(通过浅拷贝实现数据块的共享),如果数据不改变,不进行数据的复制。而当某个对象需要改变数据时则执行深拷贝。

      QString类采用隐式共享技术,将深拷贝和浅拷贝有机地结合起来。

      例如:

    QString str1="data";
    QString str2=str;  //浅拷贝指向同一个数据块
    str2[3]='e';       //一次深拷贝,str2对象指向一个新的、不同于str1所指向的数据结构
    str2[0]='f';       //不会引起任何形式的拷贝,因为str2指向的数据结构没有被共享
    str1=str2;         //str1指向的数据结构将会从内存释放掉,str1对象指向str2所指向的数据结构
  • 相关阅读:
    Linux centos 6.4安装
    vm虚拟机安装,配置与使用
    Linux简介
    360兼容视图
    补丁patch 漏洞 bug或glitch
    迫不得已! ! 仅仅针对IE浏览器的样式,尤其是IE8及以下
    JS延时器 定时器 暂停器 中断器
    CSS动态定位
    一个标准的AJAX请求
    ajax的两个重要参数contentType 和dataType
  • 原文地址:https://www.cnblogs.com/wiessharling/p/2845819.html
Copyright © 2011-2022 走看看