Advertisement
chevengur

СПРИНТ № 4 | Жизненный цикл объекта | Урок 4: Список инициализации конструктора

Nov 20th, 2023
615
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.78 KB | None | 0 0
  1. #include <numeric>
  2.  
  3. using namespace std;
  4.  
  5. class Rational {
  6. public:
  7.     Rational() = default;
  8.  
  9.     Rational(int numerator): numerator_(numerator), denominator_(1) {
  10.     }
  11.  
  12.     Rational(int numerator, int denominator): numerator_(numerator), denominator_(denominator){
  13.         Normalize();
  14.     }
  15.  
  16.     int Numerator() const {
  17.         return numerator_;
  18.     }
  19.  
  20.     int Denominator() const {
  21.         return denominator_;
  22.     }
  23.  
  24. private:
  25.     void Normalize() {
  26.         if (denominator_ < 0) {
  27.             numerator_ = -numerator_;
  28.             denominator_ = -denominator_;
  29.         }
  30.         const int divisor = gcd(numerator_, denominator_);
  31.         numerator_ /= divisor;
  32.         denominator_ /= divisor;
  33.     }
  34.  
  35.     int numerator_ = 0;
  36.     int denominator_ = 1;
  37. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement