0

QDataStream の >> および << 演算子をオーバーライドする必要があります。私のコードがあります:

QDataStream &operator <<(QDataStream &out, const SScenarioEntry Entry)
{
    out.writeRawData(Entry.EntryName, sizeof(Entry.EntryName));
    out << Entry.Number;
    out << Entry.Type;
    out.writeRawData(Entry.RequestString, sizeof(Entry.RequestString));
    out.writeRawData(Entry.AnswerString, sizeof(Entry.AnswerString));
    out.writeRawData(Entry.AdditionalParams, sizeof(Entry.AdditionalParams));
    out << Entry.Timeout;
    return out;
}

QDataStream &operator >>(QDataStream &in, SScenarioEntry Entry)
{
    in.readRawData(Entry.EntryName, sizeof(Entry.EntryName));
    in >> Entry.Number;
    in >> Entry.Type;
    in.readRawData(Entry.RequestString, sizeof(Entry.RequestString));
    in.readRawData(Entry.AnswerString, sizeof(Entry.AnswerString));
    in.readRawData(Entry.AdditionalParams, sizeof(Entry.AdditionalParams));
    in >> Entry.Timeout;
    return in;
}

コンパイルが成功した後、次のような誤解を招くエラーが発生します。

first define here
In function `Z7qt_noopv':
multiple definition of `operator>>(QDataStream&, scnent)`

2 つの質問があります。

  1. << および >> 演算子を正しく機能させるには、どのように定義する必要がありますか。
  2. このコードが正しい場合、リンク エラーを修正する方法。


回答のTnx。

4

1 に答える 1

0

とても不思議ですが、機能のアナウンスと説明を分けることで問題は解決しました。

于 2016-04-30T09:18:48.320 に答える