0

operator >>ファイルからいくつかのクラスの変数を読み取るためにオーバーロードしています。

私はこの奇妙な問題を抱えてQStringQStringListますintintmyを 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として宣言しようとしました。うまくいきませんでした。私は何が欠けていますか?

4

1 に答える 1