Probleme mit Qdebug und Qstring Const Referenz
Frage
Haben Sie eine Klasse, die die folgenden Funktionen hat:
FileInfoWrapper(const QFileInfo &_fileInfo) : fileInfo(_fileInfo) {}
const QString& FileName() const { return fileInfo.fileName(); }
Aber wenn ich das mache:
QFileInfo info(somePath);
qDebug() << info.absoluteDir(); // works
FileInfoWrapper test(info);
qDebug() << test.FileName(); // this crashes the entire application
Wenn ich die const & aus der String -Rückkehr entferne, funktioniert es. Es ist, als würde << nicht mit Referenzen funktionieren. Was ist los und warum stürzt es ab?
Lösung
Sie geben den Verweis auf das QString zurück, das zerstört wird, wenn Sie die Funktion "Dateiname () verlassen.
Andere Tipps
std :: cout kennt qstring nicht, Sie müssen es in std :: string oder const char* konvertieren
Verwenden QString::toStdString
Um in Std :: String konvertieren, zB:
std::cout << test.FileName().toStdString();
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow