我想知道将 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/