Проблемы с ссылками на константы qDebug и QString - PullRequest
0 голосов
/ 16 февраля 2012

Имеют класс, который имеет следующие функции:

FileInfoWrapper(const QFileInfo &_fileInfo) : fileInfo(_fileInfo) {}

const QString& FileName() const { return fileInfo.fileName(); }

Но когда я делаю это:

QFileInfo info(somePath);

qDebug() << info.absoluteDir(); // works

FileInfoWrapper test(info);

qDebug() << test.FileName(); // this crashes the entire application

Когда я удаляю const & из возвращаемой строки, это работает.Это как << не работает со ссылками.Что не так и почему происходит сбой?</p>

Ответы [ 2 ]

4 голосов
/ 16 февраля 2012

Вы возвращаете ссылку на QString, которая уничтожается при выходе из функции FileName ().

0 голосов
/ 16 февраля 2012

std :: cout не знает QString, вам нужно преобразовать его в std :: string или const char *

Используйте QString::toStdString для преобразования в std :: string, например ::

std::cout << test.FileName().toStdString();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...