質問

次の機能を持つクラスがあります。

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とstring Returnからconstを削除すると、機能します。 <<は参照では機能しません。何が悪いのか、なぜそれがクラッシュするのですか?

役に立ちましたか?

解決

filename()関数を残したときに破壊されるQStringへの参照を返します。

他のヒント

std :: coutはqstringを知らないので、std :: stringまたはconst char*に変換する必要があります

使用する QString::toStdString std :: stringに変換するには、例:

std::cout << test.FileName().toStdString();
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top