string - 在函数调用中发送 QString 的最佳方法是什么?

标签 string qt pointers pass-by-reference

我想知道将 Qstring 作为参数发送给函数(更具体地说是 QT 中)的最有效和实用的方法是什么。我想使用一个引用。问题是我还想在函数本身中实例化该字符串,例如:

这是函数原型(prototype):

void myFunction(QString & theMsg);

这是函数调用:

myFunction(tr("Hello StringWorld"));

现在函数 tr() 返回一个 QString,但它不适用于引用(我明白为什么)。

我必须这样做:

QString theQstr("Hello StringWorld"); 
myFunction(theQstr);

是否有更简单的方法来执行此操作,同时仍然使用引用,或者我可以只更改函数参数以使用 QString 并且它仍然有效吗?

最佳答案

QString 在幕后使用 COW(写入时复制),因此即使您使用如下签名,也不会复制实际字符串:

void myFunction(QString theMsg)

(直到您修改它为止)。

如果你绝对想要一个引用,我会使用 const& 除非你打算修改输入参数。

void myFunction(QString const& theMsg)

关于string - 在函数调用中发送 QString 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2104328/

相关文章:

qt - 如何在嵌入式 Web 浏览器中支持 window.print()?

c - 使用 offsetof 执行指针运算示例

C 计算一串数字中出现次数最多的数字

c# - 从对象列表中创建一个逗号分隔的字符串

string - 如何使用另一个 HashSet<String> 扩展 HashSet<String>?

c++ - QProgressBar 和繁重的任务

c - 访问数组的特定元素

javascript - 在 if 语句中使用字符串的内容作为条件

python - 对带有异常的字符串进行标题化

c++ - Qt 从非源文件中翻译字符串