Rational.h 1014 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef _RATIONAL_
  2. #define _RATIONAL_
  3. #include <iostream>
  4. using namespace std;
  5. class Rational {
  6. public:
  7. long long int num;
  8. long long int denum;
  9. Rational();
  10. Rational(float num);
  11. Rational(double num);
  12. Rational(int num1, int num2);
  13. Rational& operator *=(const Rational& r);
  14. Rational operator *(const Rational& r) const;
  15. Rational& operator += (const Rational& r);
  16. Rational operator + (const Rational& r) const;
  17. Rational& operator -= (const Rational& r);
  18. Rational operator - (const Rational& r) const;
  19. Rational operator / (const Rational& r) const;
  20. Rational& operator /= (const Rational& r);
  21. operator int () const;
  22. operator double() const;
  23. friend ostream& operator <<(ostream& out, const Rational& r);
  24. private:
  25. // упрощение самого себя
  26. void simple();
  27. // НОК
  28. long long int lcm(long long int num1, long long int num2);
  29. // НОД
  30. long long int gcd(long long int num1, long long int num2);
  31. };
  32. #endif