Qt--QString的用法

QString概念解析:

QString类采用隐式共享技术,将深拷贝和浅拷贝邮寄的结合起来,隐式共享可以降低对内存和CPU资源的使用率,提高资源的运行效率。它使得在函数中(如参数、返回值)使用值传递更有效率。
隐式共享工作如下:

   QString str1="data";    //初始化一个内容为"data"
   QString str2=str1;     
   str2[3]='e';                   
   str2[0]='f';                   
   str1=str2;         

QString str2=str1; //将该字符串对象str1赋值给另一个字符串str2,此时str2=“data”。在对str2赋值时,将发生一次浅拷贝,导致两个QString对象都指向同一个数据结构

str2[3]=‘e’; //对QString对象str2的修改,将会导致一次深拷贝,使得str2对象指向一个新的、不同于str1所指的数据结构,同时改原来的str1指向的数据结构,设置它的引用计数为1(此时,只有QString对象str1指向该数据结构

str2[0]=‘f’; //进一步对QString对象str2进行修改,但这个操作不会引起任何形式的复制,因为str2指向的数据结构没有被共享,此时,str2=“fate”,str1=“data”

str1=str2; //将str2赋值给str1。此时,str1将它指向的数据结构的引用计数器的值修改为0,也就是说,没有QString对象再使用这个数据了

Qt支持的隐式共享的类,还包括:QByteArray、QBrush、QPen、QPalette、QBitmap、QImage、QPixmap、QCursor、QDir、QFont和QVariant等。

QString类的使用:

  • 用成员函数判断 QString 对象是否为空字符串:

    bool isEmpty() const;    // 判断是否为空字符串
    
  • QString重载

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值