Rewriting requirements: Overloading >> and << implementing the direct input and output of fractional class objects, overloading + completing multiple fractional object additions
#include <cstdlib>#include<iostream>using namespacestd;classfract{intNum,den; Public: Friend Ostream&operator<< (ostream& output,fract&temp); Friend IStream&operator>> (istream& intput,fract&Temp1); Fractoperator+ (fract&Temp1); intgcdintMintN) {intR; if(m<N) {R=m;m=n;n=R; } while(r=m%N) {m=N; N=R; } returnN; }};istream&operator>> (istream& input,fract&Temp1) {Input>>temp1.num>>Temp1.den; returninput;} Ostream&operator<< (ostream& output,fract&temp) {Output<<temp.num<<"/"<<temp.den<<Endl; returnoutput;} Fract Fract::operator+ (fract&Temp1) {Fract sum; intx,y,temp; X=num*temp1.den+den*Temp1.num; Y=den*Temp1.den; Temp=gcd (x, y); X=x/temp; Y=y/temp; Sum.num=x; Sum.den=y; returnsum;} intMainintargcChar*argv[]) {Fract temp1,temp2,temp; CIN>>temp1>>Temp2; Temp=temp1+Temp2; cout<<temp; System ("PAUSE"); returnexit_success;}
C + + Programming practice Guidance 1.6 fractional operation rewriting requirements implementation