operator >>
ファイルからいくつかのクラスの変数を読み取るためにオーバーロードしています。
私はこの奇妙な問題を抱えてQString
いQStringList
ますint
。int
myを as として宣言しようとしqint16
ましたが、同じエラー メッセージが表示されます。
.h
内容:
enum Anyo { Primero, Segundo, Tercero, Cuarto, Quinto, Sexto, ANYOS };
class Asignatura
{
public:
Asignatura();
Asignatura(const QString & nom, Anyo a, int hsCat);
friend QDataStream& operator<<(QDataStream &out, const Asignatura &a);
friend QDataStream& operator>>(QDataStream &in, Asignatura &a);
...
private:
static int idGeneral;
int id;
QString nombre;
QString nombreProfe;
Anyo anyo;
int hsCatedra;
int hsResueltas;
bool tieneProfe;
};
.cpp
内容:
QDataStream& operator >>(QDataStream &in, Asignatura &a)
{
in >> a.id;
in >> a.nombre;
in >> a.nombreProfe;
in >> a.anyo;
in >> a.hsCatedra;
in >> a.hsResueltas;
in >> a.tieneProfe;
return in;
}
私が受け取るエラーは次のとおりです。
エラー: 'in >> a.Asignatura::id' の 'operator>>' に一致しません エラー: 'in >> a.Asignatura::anyo' の 'operator>>' に一致しません エラー: 'in >> a.Asignatura::hsCatedra' の 'operator>>' に一致しません エラー: 'in >> a.Asignatura::hsResueltas' の 'operator>>' に一致しません エラー: 'in >> a.Asignatura::tieneProfe' の 'operator>>' に一致しません
何?の読み方がわからないint
?またはbool
(基本的にはint
...)?
QDataStream::Qt_4_5 (特別な理由はありません)、Qt 4.8.3 を使用しています。
上で述べたように、変数をqint16、qint8として宣言しようとしました。うまくいきませんでした。私は何が欠けていますか?