Operator Overloading part 2(Chapter 12 of Thinking in C++)

 1  #include  < iostream >
 2  #include  < sstream >
 3  #include  < cstring >
 4  using   namespace  std;
 5 
 6  class  IntArray
 7  {
 8       enum  { sz  =   5  };
 9       int  i[sz];
10  public :
11      IntArray() 
12      {
13          memset(i,  0 , sz  *   sizeof ( * i));
14      }
15       int &   operator []( int  x)
16      {
17           return  i[x];
18      }
19      friend ostream &   operator << (ostream &  os,  const  IntArray &  ia);
20      friend istream &   operator >> (istream &   is , IntArray &  ia);
21  };
22 
23  ostream &   operator << (ostream &  os,  const  IntArray &  ia)
24  {
25       for ( int  j = 0 ; j < ia.sz; j ++ )
26      {
27          os  <<  ia.i[j];
28           if (j  !=  ia.sz  -   1 )
29          {
30              os  <<   " " ;
31          }
32      }
33      os  <<  endl;
34       return  os;
35  }
36 
37  istream &   operator >> (istream &   is , IntArray &  ia)
38  {
39       for ( int  j = 0 ; j < ia.sz; j ++ )
40      {
41           is   >>  ia.i[j];
42      }
43 
44       return   is ;
45  }
46 
47  int  main()
48  {
49      stringstream input( " 47 34 56 92 103 " );
50      IntArray I;
51      input  >>  I;
52      I[ 4 =   - 1 ;
53      cout  <<  I;
54  }

 

转载于:https://www.cnblogs.com/zhtf2014/archive/2010/11/27/1889638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值