Я хотел бы знать то, что является самым эффективным и практическим способом отправить Qstring в качестве параметра в функцию в QT более конкретно. Я хочу использовать ссылку. Проблема, я также хочу инстанцировать той строки в самой функции как так, например:
это - прототип функции:
void myFunction(QString & theMsg);
это - вызов функции:
myFunction(tr("Hello StringWorld"));
теперь function tr()
возвращает QString, но он не работает со ссылкой (я вижу почему).
Я должен сделать это:
QString theQstr("Hello StringWorld");
myFunction(theQstr);
Существует ли более простой способ сделать это при тихом использовании ссылок, или я мог просто изменить параметр функции для использования QString, и это все еще было бы эффективно?
QString использует корову (копию на запись) за кулисами, поэтому фактическая строка не скопирована, даже если вы используете следующую подпись:
Boid Myфункция (QString Themsg)
(пока вы не измените это, то есть).
Если вы абсолютно хотите ссылку, я бы использовал Const & Если вы не планируете изменять аргумент ввода.
Мояфункция Void (QString Const & Themsg)
Самый эффективный и практичный способ использует ссылку на константу. Корова QString будет медленнее, чем проходит посредством ссылки, но быстрее, чем обычная копия.