7.3.                                               195

 operator double(){return static_cast<double>(a)/q;}
  -  rational  double.

 inline int greater(int i, int j)

{ return ( i > j ? i : j); }
inline double greater(double x, double y)

{ return ( x >  ? x : y); }
inline rational greater(rational w, rational z)

{ return ( w > z ? w : z); }

   .      -
  rational        . -
 - operator double    
w > z.   ,   operator> (),    
  rational.

 cout  "\ngreater("  i  ", "  j  ") = "
 greater(i, j) ;

cout  "\ngreater("  x  ", "  y  ") = "

 greater(x, y) ;

     greater,   
.      greater, 
     float  double. 
     double.

 cout  ") = "  greater(static_cast<rational>(i), z);

   greater    .
   i   rational   , 
 .

 zmax = greater(w, z);

     .

.  3  . 220,     rational.

7.3.  

  friend ()  ,  
.   --       -
        C++.   
     ,     
.

        ,  -
          .
   ,       
  ,        -