当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>C++进阶与实例

C++重载输入输出符

    当我们对一个类重载<<,>>运算符之后,就可以直接使用cout<<x,cin>>x两种简单的操作
    a.重载输出运算符<<
    因重最左边的操作数是ostream,自然就不能用类的成员函数重载,而只能以类的友元函数进行重载
    //<<函数定义格式
    friend ostream operator<<(ostream&,const nameclass&)const;
    //<<函数实现部分
    ostream & operator<<(ostream& out,const classname& object)
    {
    //local delcare if any
    //check object ostream
    //output the members of the object
    //...
    return out;
    }

    b.重载输出运算符>>
    因重最左边的操作数是istream,自然就不能用类的成员函数重载,而只能以类的友元函数进行重载
    //<<函数定义格式
    friend istream operator>>(istream&,const nameclass&)const;
    //<<函数实现部分
    istream & operator>>(istream& in,const classname& object)
    {
    //local delcare if any
    //check object istream
    //output the members of the object
    //...
    return in;
    }

    c.<<,>>代码实现
    //重载函数<<,>>定义
    class OpOver
    {
    public:
     OpOver(int i=0;int j=0){a=i;b=j;};
     friend ostream& operator<<(ostream&,const OpOver&);
     friend istream& operator>>(istream&,const OpOver&);
     OpOver operator+(const OpOver&)const;
     bool operator==(const OpOver&)const;
    private:
     int a;
     int b;
    };
    //重载函数<<,>>实现
    ostream& operator<<(ostream& out,const OpOver& right)
    {
     out<<right.a<<\",\"<<right.b;
     return out;
    }
    istream& operator>>(istream& in,const OpOver& right)
    {
     in>>right.a>>right.b;
     return in;
    }

 

相关内容
赞助商链接