使用istream&作为函数参数

时间:2016-04-06 18:57:51

标签: c++ istream

我被告知使用istream&作为我的类Complex的输入函数的参数。这用于复数。但是我很难找到如何使用istream的好解释。

我希望能够找到真实和想象变量。

class Complex
{
    public:
        void input(std::istream& in);
        void output(std::ostream& out);
        double getReal();
        double getImag();
        void setReal(double r);
        void setImag(double i);
    private:
        double real;
        double imag;
};

void Complex::input(istream& in)
{
    in >> real;
    in >> imag;
}

1 个答案:

答案 0 :(得分:0)

的签名
    void input(std::istream& in);
    void output(std::ostream& out);

应允许链接生成的流状态:

    std::istream& input(std::istream& in);
    std::ostream& output(std::ostream& out) const;

因此,这些可用于您班级的全局重载:

 std::istream operator>>(std::istream& is, Complex& c ) {
     return c.input(is);
 }

 std::ostream operator<<(std::ostream& os, const Complex& c ) {
     return c.output(os);
 }