Что лучший способ состоит в том, чтобы отправить QStrings в вызове функции?

Я хотел бы знать то, что является самым эффективным и практическим способом отправить Qstring в качестве параметра в функцию в QT более конкретно. Я хочу использовать ссылку. Проблема, я также хочу инстанцировать той строки в самой функции как так, например:

это - прототип функции:

void myFunction(QString & theMsg);

это - вызов функции:

myFunction(tr("Hello StringWorld"));

теперь function tr() возвращает QString, но он не работает со ссылкой (я вижу почему).

Я должен сделать это:

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

Существует ли более простой способ сделать это при тихом использовании ссылок, или я мог просто изменить параметр функции для использования QString, и это все еще было бы эффективно?

23
задан Julien 23 July 2017 в 12:46
поделиться

2 ответа

QString использует корову (копию на запись) за кулисами, поэтому фактическая строка не скопирована, даже если вы используете следующую подпись:

Boid Myфункция (QString Themsg)

(пока вы не измените это, то есть).

Если вы абсолютно хотите ссылку, я бы использовал Const & Если вы не планируете изменять аргумент ввода.

Мояфункция Void (QString Const & Themsg)

15
ответ дан 29 November 2019 в 02:46
поделиться

Самый эффективный и практичный способ использует ссылку на константу. Корова QString будет медленнее, чем проходит посредством ссылки, но быстрее, чем обычная копия.

10
ответ дан 29 November 2019 в 02:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: