Преобразование из QString * в QString & amp;

Я запутался в использовании указателей и ссылок и столкнулся с небольшой проблемой.

Я получил функцию:

bool myObject::isFlag( QString &pArgument) const { }

И я использую это с:

QStringList::const_iterator myQStringList.begin();

[...] && !isFlag( QString( *(myVar + 1)))

Я получил ошибку за

QString( *(myVar + 1)))

который указывает, что соответствующая функция не найдена.

Однако я почти уверен, что это должно быть хорошо … Вы случайно не знаете, в чем может быть проблема?

2

Решение

В этом звонке

isFlag( QString( *(myVar + 1)))

аргумент временный QString, Вы не можете привязывать неконстантные ссылки к временным файлам, вам нужно изменить isFlag взять константную ссылку:

bool myObject::isFlag( const QString &pArgument) const {

Если вы не можете использовать const ссылка, то вы должны создать QString, затем передайте его функции:

QString qs( *(myVar + 1));
isFlag(qs);

Все вышеперечисленное предполагает, что QString может быть построен из, *(myvar +1)что, опять же, временно.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]