Whats the best way to send QStrings in a function call?
pass-by-reference, pointers, qt, string
Solution
QString uses COW (Copy On Write) behind the scenes, so the actual string isn't copied even if you use a signature like this:
void myFunction(QString theMsg)
(until you modify it that is).
If you absolutely want a reference I would use a const& unless you plan to modify the input argument.
void myFunction(QString const& theMsg)
Problem
I would like to know what is the most efficient and practical way of sending a Qstring as a parameter to a function, in QT more specifically. I want to use a reference. The problem is I also want to instantiate that string in the function itself like so for example: this is the function prototype: ``` void myFunction(QString & theMsg); ``` this is the function call: ``` myFunction(tr("Hello StringWorld")); ``` now the `function tr()` returns a QString but it doesn't work with a reference(I can see why). I have to do this: ``` QString theQstr("Hello StringWorld"); myFunction(theQstr); ``` Is there a simpler way to do this while still using references or could I just change the function parameter to use a QString and it would still be efficient?