头文件中的C ++运算符<<和>>方法,做错了

|| 我的头文件中有这段代码,并且在ostream和istream行上都有大量错误。一个错误是\“&\” \“之前的\” missing \“; \”并让我感到困惑,对此感到抱歉
#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);
提前致谢     
已邀请:
看起来你只需要做
    #include <ostream>
    #include <istream>
然后在这些行的前面放置一个std名称空间限定符,即:
    std::ostream& operator<<(std::ostream& out,...)
    
我不清楚这段代码出现在上下文中,但是错误表明这些声明出现在定义
ostream
istream
之前。 您是否以正确的顺序包含了正确的头文件?     
您省略的内容包括:
#include <istream>
#include <ostream>
注意:所有标准类型,例如
istream
ostream
都存在于称为
std
的命名空间中。因此,为了能够使用它们,您需要: 给它们加上“ 9”前缀或 使用名称空间(
using namespace std;
)。对于头文件,这是一种非常不好的做法,因为它可能导致稍后包含的头文件中的命名冲突。     
添加iostream include并将方法原型放到类中并声明为friend。我无法通过手机回复更多详细信息。 这里是一个链接:Operator-Overloading / Classlevelostreamoperatorandistreamoperator.htm \“> http://www.java2s.com/Tutorial/Cpp/0200_Operator-Overloading/Classlevelostreamoperatorandistreamoperator.htm     

要回复问题请先登录注册