Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.78 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. class Fraction
  4. {
  5. private:
  6.     int m_numerator = 0;
  7.     int m_denominator = 1;
  8.  
  9. public:
  10.     Fraction(int numerator = 0, int denominator = 1) : 
  11.         m_numerator(numerator), m_denominator(denominator){}
  12.  
  13.     void print()
  14.     {
  15.         std::cout << m_numerator << "/" << m_denominator << "\n";
  16.     }
  17.  
  18.     int GetNumerator() const { return m_numerator; }//???????
  19.     int GetDetominator() const { return m_denominator; }
  20.  
  21.     friend std::ostream& operator<<(std::ostream &out, const Fraction &f);
  22.     friend std::istream& operator>>(std::istream &in, Fraction &f);
  23. };
  24.  
  25. Fraction operator*(const Fraction &f1, const Fraction &f2);
  26. Fraction operator*(const Fraction &f1, const int &num);
  27. Fraction operator*(const int &num, const Fraction &f2);
  28.  
  29. int main()
  30. {
  31.     Fraction f;
  32.     std::cin >> f;
  33.     std::cout << f;
  34.  
  35.     Fraction f1(3, 4);
  36.     f1.print();
  37.  
  38.     Fraction f2(2, 7);
  39.     f2.print();
  40.  
  41.     Fraction f3 = f1 * f2;
  42.     f3.print();
  43.  
  44.     std::cout << std::endl << f3 << std::endl;
  45.  
  46.     Fraction f4 = f1 * 3;
  47.     f4.print();
  48.  
  49.     Fraction f5 = 3 * f2;
  50.     f5.print();
  51.  
  52.     Fraction f6 = Fraction(1, 2) * Fraction(2, 3) * Fraction(3, 4);
  53.     f6.print();
  54.  
  55.  
  56.     system("pause");
  57.     return 0;
  58. }
  59.  
  60.  
  61. std::ostream & operator<<(std::ostream & out, const Fraction &f)
  62. {
  63.     return out << f.m_numerator << "/" << f.m_denominator;
  64. }
  65.  
  66. std::istream & operator >> (std::istream & in, Fraction &f)
  67. {
  68.     in >> f.m_denominator;
  69.     in >> f.m_numerator;
  70.     return in;
  71. }
  72.  
  73. Fraction operator*(const Fraction &f1, const Fraction &f2)
  74. {
  75.     return Fraction(f1.GetDetominator()*f2.GetDetominator(), f1.GetNumerator()*f2.GetNumerator());
  76. }
  77.  
  78. Fraction operator*(const Fraction &f1, const int &num)
  79. {
  80.     return Fraction(f1.GetDetominator(), f1.GetNumerator()*num);
  81. }
  82.  
  83. Fraction operator*(const int &num, const Fraction &f2)
  84. {
  85.     return operator*(f2, num);
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement