Проблемы с QDebug и Qstring Const report
Вопрос
Иметь класс, который имеет следующие функции:
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 & From String return, это работает. Это как << не работает со ссылками. Что не так и почему это разбивается?
Решение
Вы возвращаете ссылку на QString, которая разрушается, когда вы оставляете функцию FileName ().
Другие советы
std :: cout не знает qstring, вам нужно преобразовать его в Std :: String или const char*
Использовать QString::toStdString
Чтобы преобразовать в Std :: String, например:
std::cout << test.FileName().toStdString();
Не связан с StackOverflow