Problèmes avec qDebug et QString référence const
Question
Avoir une classe qui ont les fonctions suivantes:
FileInfoWrapper(const QFileInfo &_fileInfo) : fileInfo(_fileInfo) {}
const QString& FileName() const { return fileInfo.fileName(); }
Mais quand je fais ceci:
QFileInfo info(somePath);
qDebug() << info.absoluteDir(); // works
FileInfoWrapper test(info);
qDebug() << test.FileName(); // this crashes the entire application
Quand je retire la const & du retour de chaîne, cela fonctionne. Il est comme << ne fonctionne pas avec des références. Quel est le problème et pourquoi planter?
La solution
Vous revenez à la référence QString qui est détruit lorsque vous quittez la fonction FileName ().
Autres conseils
std :: Cout ne sait pas QString, vous devez le convertir en std :: string ou const char *
Utilisez QString::toStdString
pour convertir en std :: string, par exemple:.
std::cout << test.FileName().toStdString();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow