2

ヘッダー ファイルにこのコードがあり、ostream と istream の行で大量のエラーが発生しました。エラーの 1 つは、「&」の前に「;」がありません」で、混乱しています。

#pragma once

class ArrayIntStorage
{
public:
    void readFromFile();
    bool setReadSort(bool);
    void sortStd();
    void sortOwn();

    ArrayIntStorage(void);
    ~ArrayIntStorage(void);
};  

ostream& operator<< (ostream &out, const ArrayIntStorage &a);
istream& operator>> (istream &in, ArrayIntStorage &b);

前もって感謝します

4

4 に答える 4

4

あなたがする必要があるように見えます

    #include <ostream>
    #include <istream>

次に、それらの行の前にstd名前空間修飾子を配置します。

    std::ostream& operator<<(std::ostream& out,...)
于 2011-04-19T15:33:30.393 に答える
3

このコードが表示されるコンテキストは私にはわかりませんが、エラーは、これらの宣言が前ostreamに表示istreamされ、定義されていることを示しています。

適切なヘッダーファイルを適切な順序でインクルードしていますか?

于 2011-04-19T15:34:28.007 に答える
1

省略したもの:

#include <istream>
#include <ostream>

注:のようなすべての標準タイプはistreamostreamと呼ばれる名前空間内に存在しますstd。したがって、それらを使用できるようにするには、次のいずれかを行う必要があります。

  • それらの前にstd::または
  • 名前空間(using namespace std;)を使用します。これは、後でインクルードされるヘッダーファイルで名前の衝突を引き起こす可能性があるため、ヘッダーファイルにとっては非常に悪い習慣です。
于 2011-04-19T15:33:59.690 に答える
0

iostream インクルードを追加し、メソッド プロトタイプをクラス内に配置して、フレンドとして宣言します。携帯からの返信なので詳しくは言えません。

リンクは次のとおりです: Operator-Overloading/Classlevelostreamoperatorandistreamoperator.htm">http://www.java2s.com/Tutorial/Cpp/0200_Operator-Overloading/Classlevelostreamoperatorandistreamoperator.htm

于 2011-04-19T15:37:23.310 に答える