Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Fraction
- {
- private:
- int m_numerator = 0;
- int m_denominator = 1;
- public:
- Fraction(int numerator = 0, int denominator = 1) :
- m_numerator(numerator), m_denominator(denominator){}
- void print()
- {
- std::cout << m_numerator << "/" << m_denominator << "\n";
- }
- int GetNumerator() const { return m_numerator; }//???????
- int GetDetominator() const { return m_denominator; }
- friend std::ostream& operator<<(std::ostream &out, const Fraction &f);
- friend std::istream& operator>>(std::istream &in, Fraction &f);
- };
- Fraction operator*(const Fraction &f1, const Fraction &f2);
- Fraction operator*(const Fraction &f1, const int &num);
- Fraction operator*(const int &num, const Fraction &f2);
- int main()
- {
- Fraction f;
- std::cin >> f;
- std::cout << f;
- Fraction f1(3, 4);
- f1.print();
- Fraction f2(2, 7);
- f2.print();
- Fraction f3 = f1 * f2;
- f3.print();
- std::cout << std::endl << f3 << std::endl;
- Fraction f4 = f1 * 3;
- f4.print();
- Fraction f5 = 3 * f2;
- f5.print();
- Fraction f6 = Fraction(1, 2) * Fraction(2, 3) * Fraction(3, 4);
- f6.print();
- system("pause");
- return 0;
- }
- std::ostream & operator<<(std::ostream & out, const Fraction &f)
- {
- return out << f.m_numerator << "/" << f.m_denominator;
- }
- std::istream & operator >> (std::istream & in, Fraction &f)
- {
- in >> f.m_denominator;
- in >> f.m_numerator;
- return in;
- }
- Fraction operator*(const Fraction &f1, const Fraction &f2)
- {
- return Fraction(f1.GetDetominator()*f2.GetDetominator(), f1.GetNumerator()*f2.GetNumerator());
- }
- Fraction operator*(const Fraction &f1, const int &num)
- {
- return Fraction(f1.GetDetominator(), f1.GetNumerator()*num);
- }
- Fraction operator*(const int &num, const Fraction &f2)
- {
- return operator*(f2, num);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement