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

it2022-05-08  8

 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)