Write a class named Fraction that represents a fraction of two integers. Overload the following operators for this class:
- The + operator to add two fractions and return their sum as another fraction in reduced form.
- The - operator to subtract two fractions and return their difference as another fraction in reduced form.
- The * operator to multiply two fractions and return their product as another fraction in reduced form.
- The / operator to divide two fractions and return their quotient as another fraction in reduced form.
- The == operator to compare two fractions for equality and return true or false.
- All comparison operations (>,<,>=,<=)
- The ++ and -- operator that adds (or substracts) 1 to the fraction. implement both pre and post fix.
- The << operator to print a fraction to an output stream in the format โnumerator/denominatorโ.
- The >> operator to read a fraction from an input stream by taking two integers as input.
- All operators should work on both sides on fractions and floats type variables. on a float var you need use up to 3 digits beyond the desimal point for acuracy.
ืืืืืืืช ืืคืขืืืช ืืืืืงื ื ืืชื ืืืฆืื ื-Demo.cpp.
ืืฉืื ื ืขืืืื ืืืชืื ืืืชืจืืช ืืืืืงืืช-ืืืืื ืืงืืคืืช.
ืืืชืื ืืช ืื ืืงืืฆืื ืืืจืืฉืื ืื ืฉืืคืงืืืืช ืืืืืช ืืขืืื ืืื ืฉืืืืืช:
make demo && ./demo
make test && ./test
ืืืืืฅ ืื ืืืจืืฅ:
make tidy
make valgrind
ืฉืืื ืื: ืืื ืืฉื ืืช ืงืืฆืื ืงืืืืื, ืืื ืจืง ืืืืกืืฃ ืงืืฆืื ืืืฉืื. ืืขืจืืช ืืืืืงื ืืืืืืืืืช ืืขืชืืงื ืืืืฉ ืืช ืื ืืงืืฆืื ืืงืืืืื ืขื-ืืื ืืคืชืจืื ืฉืืชื ืืืืฉืื, ืืืื ืื ืฉืื ืื ืฉืชืขืฉื ืืงืืฆืื ืืงืืืืื ืืืืืง.
ืืืฆืืื