yan*_*nce 23 string qt pointers pass-by-reference
我想知道在QT中将Qstring作为参数发送到函数的最有效和最实用的方法是什么,更具体地说.我想用一个参考.问题是我也想在函数本身中实例化该字符串,例如:
这是函数原型:
void myFunction(QString & theMsg);
Run Code Online (Sandbox Code Playgroud)
这是函数调用:
myFunction(tr("Hello StringWorld"));
Run Code Online (Sandbox Code Playgroud)
现在function tr()返回一个QString,但它不能用于引用(我可以看到原因).
我必须这样做:
QString theQstr("Hello StringWorld");
myFunction(theQstr);
Run Code Online (Sandbox Code Playgroud)
有没有更简单的方法在仍然使用引用时执行此操作,或者我可以只更改函数参数以使用QString,它仍然有效吗?
Mor*_*tad 15
QString在幕后使用COW(Copy On Write),因此即使您使用如下签名,也不会复制实际的字符串:
void myFunction(QString theMsg)
(直到你修改它为止).
如果您绝对需要引用,我将使用const&除非您计划修改输入参数.
void myFunction(QString const&theMsg)