operator overload 2

  #include <iostream>


using namespace std;


class fraction{


  private:


  int numerator;


  int denominator;


  public:


  fraction(int numerator,int denominator){


      this->numerator=numerator;//


      this->denominator=denominator;


  }


  void print(){


      cout<<this->numerator<<"/"<<this->denominator<<endl;


  }


  void simplify(){


      int gcd=1;


      for(int i=1;i<min(this->numerator,this->denominator);i++){


          if(this->numerator%i==0 && this->denominator%i==0){


              gcd=i;


          }


      }


      this->numerator=this->numerator/gcd;


      this->denominator=this->denominator/gcd;


       cout<<this->numerator<<"/"<<this->denominator<<endl;


  }


 fraction operator+(fraction f2) const{


      int lcm=f2.denominator*this->denominator;


      int x=lcm/this->denominator;


      int y=lcm/f2.denominator;

      int num=(this->numerator*x)+(y*f2.numerator);

      fraction f3(num,lcm);

     return f3;

      //this->denominator=lcm;

 }

      bool operator==(fraction f2) const{

          return(numerator==f2.numerator && denominator==f2.denominator);

          

      }

      


      //cout<<this->numerator<<"/"<<this->denominator<<endl;


  

  fraction operator*(fraction f2) const{

      int num=numerator*f2.numerator;

      int den=denominator*f2.denominator;

      fraction f3(num,den);

      return f3;

  }

  

  fraction& operator++(){//instead of buffer, we change by reference

     this->numerator=numerator+denominator;

     this->denominator=denominator;

     return *this;

  }


  


};


int main() {


    fraction f1(10,5);

    f1.print();

    ++f1;

    f1.print();

    fraction f3=++(++f1);

    f3.print();

    f1.print();


    return 0;


}

Comments

Popular posts from this blog

Sum of Even Numbers till N

Find the Runner-Up Score!

Print All Substrings