C++运算符<<和头文件中的>>方法,做得非常错误



我在头文件中有这段代码,我在ostream和istream行上有很多错误。其中一个错误是"missing";"before"&我很困惑,我是新手,对不起

#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);

thanks in advance

看起来你只需要做

    #include <ostream>
    #include <istream>

然后在这些行前面放置STD名称空间限定符,例如:

    std::ostream& operator<<(std::ostream& out,...)

我不清楚这段代码出现的上下文,但错误表明这些声明出现在ostreamistream定义之前。

您是否以适当的顺序包含适当的头文件?

您省略的包括:

#include <istream>
#include <ostream>

注意:所有的标准类型,如istream, ostream都在一个名为std的命名空间中。因此,为了能够使用它们,你需要:

  • 前缀std::
  • 使用命名空间(using namespace std;)对于头文件来说,这是一个非常糟糕的做法,因为它可能会导致稍后包含的头文件中的命名冲突。

添加iostream include并将方法原型放入类中并声明为友元。我不能提供更多的细节,因为我是用手机回复的。

这里有一个链接:operator - overload/classlevelostreamoperatoranddistreamoperator .htm">http://www.java2s.com/Tutorial/Cpp/0200_Operator-Overloading/Classlevelostreamoperatorandistreamoperator.htm

最新更新