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?

Était-ce utile?

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
scroll top