Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- class Fraction
- {
- int numerator;
- int denominator;
- public:
- Fraction(int numeratorP, int denominatorP) : numerator{ numeratorP }, denominator{ denominatorP }
- {
- std::cout << "Fraction constructed for -> " << this << '\n';
- }
- // Fraction f3{ f1 };
- Fraction(const Fraction& fract) : numerator{ fract.numerator }, denominator{ fract.denominator }{ std::cout << "Fraction COPY constructed for -> " << this << '\n'; }
- Fraction() :Fraction(1, 1) { std::cout << "Fraction DEFAULT constructed for -> " << this << '\n'; }
- int getNumerator() { return numerator; }
- int getDenominator() { return denominator; }
- void setNumerator(int num) { numerator = num; }
- void setDenominator(int denom) { denominator = denom; }
- Fraction mul(const Fraction& frac)
- {
- return Fraction{ numerator * frac.numerator, denominator * frac.denominator };
- }
- Fraction div(const Fraction& frac)
- {
- return Fraction{ numerator * frac.denominator, denominator * frac.numerator};
- }
- Fraction& print()
- {
- std::cout << '(' << numerator << '/' << denominator << ')';
- return *this;
- }
- ~Fraction()
- {
- std::cout << "Fraction destructed for -> " << this << '\n';
- }
- };
- int main()
- {
- Fraction f1{1,3};
- Fraction f2{1,2};
- Fraction f3{ f1 };
- Fraction f4{ f1.mul(f2) };
- f1.print(); std::cout << '\n';
- f2.print(); std::cout << '\n';
- f3.print(); std::cout << '\n';
- f4.print(); std::cout << '\n';
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement