zoukankan      html  css  js  c++  java
  • cin、cout的重载

    一、cin重载

      1.cin为ostream类的成员

      2.cin重载应为全局函数(毕竟ostream是别人写好的)

      3.代码

      a.核心代码

    ostream & operator<<(ostream &os,const A &a)//const A &a是为了避免复制函数的调用 ;ostream &o 相当于 cout 
    {
        o<<a.x<<" "<<a.y;
    return os; }
    //返回值设为ostream &是为了连续使用 <<

      b.完整试例

    #include<iostream>
    using namespace std;
    class A
    {
        int x;
        int y;
        public:
            A(int a=0,int b=0):x(a),y(b) {}
        friend ostream & operator<<(ostream & o,const A & a);//友元 
    };
    ostream & operator<<(ostream &o,const A &a)//const A &a是为了避免复制函数的调用 ;ostream &o 相当于 cout 
    {
        o<<a.x<<" "<<a.y; 
    }//返回值设为ostream &是为了连续使用 << 
    int main()
    {
        A a(1,2);
        cout<<a<<endl;
    }

    二、cout重载

       1.核心代码

    istream & operator>>(istream &is,A &a)
    {
        is>>a.x>>a.y;
        return is;
    }

       2.完整试例

    #include<iostream>
    using namespace std;
    class A
    {
        int x;
        int y;
        public:
            A(int a=0,int b=0):x(a),y(b) {}
            friend istream & operator>>(istream & is,A & a);
            friend ostream & operator<<(ostream & os,const A & a);//设置友元 是为了访问私有成员x,y 
    };
    ostream & operator<<(ostream &os,const A &a) 
    {
        os<<a.x<<" "<<a.y; 
        return os;
    } 
    istream & operator>>(istream &is,A &a)
    {
        is>>a.x>>a.y;
        return is;
    }
    int main()
    {
        A a;
        cin>>a;
        cout<<a<<endl;
        return 0;
    }
  • 相关阅读:
    APPlication,Session和Cookie的区别
    C# 中的Request对象的应用
    从字符串里提取一个列表(数组)
    UDP:用户数据报协议
    反射
    网络编程
    多线程
    final,finally和finalize的区别
    集合
    StringBuffer
  • 原文地址:https://www.cnblogs.com/shenyuling/p/10017485.html
Copyright © 2011-2022 走看看