QString 赋值拷贝操作

在 Qt 中,QString 的赋值操作符(即 =)可以用于直接赋值,而且这些赋值操作是深拷贝的。这意味着当你将一个 QString 对象赋值给另一个 QString 对象时,两个对象将独立存储它们的字符串数据,修改其中一个不会影响另一个。

深拷贝的解释
深拷贝:将一个对象的所有数据复制到另一个对象中,这意味着两个对象有各自独立的内存空间。如果你修改其中一个对象,另一个不会受到影响。
// 示例 1: 使用字符串字面值初始化
QString str1 = "1223231";  // str1 包含 "1223231"

// 示例 2: 使用现有 QString 对象初始化
QString str2 = str1;  // str2 现在是 str1 的深拷贝

// 修改 str2 不会影响 str1
str2[0] = '9';

qDebug() << "str1:" << str1;  // 输出: "1223231"
qDebug() << "str2:" << str2;  // 输出: "9223231"

// 示例 3: 赋值后进行修改
QString str3 = "Hello";
QString str4 = str3;

str4.append(" World!");  // 仅修改 str4,不影响 str3

qDebug() << "str3:" << str3;  // 输出: "Hello"
qDebug() << "str4:" << str4;  // 输出: "Hello World!"


官方文档中的相关描述
根据 Qt 官方文档:

赋值操作符 operator=:当你将一个 QString 对象赋值给另一个 QString 对象时,Qt 会进行深拷贝。这意味着 str2 = str1 后,str2 将拥有与 str1 相同的字符串内容,但两者是独立的,修改 str2 不会影响 str1。

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值