Объектно-ориентированное программирование на C++. Андрианова А.А - 126 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
В функции main() приведены различные способы создания
объектов класса Fraction с помощью конструкторов.
void main(void)
{
Fraction d1(2, 3, 0, 1); // создание дроби 2/3
Fraction d2(4, 5, 2, -1); // создание дроби -2 4/5
Fraction d3(4, 3, 1, 1); // создание дроби 2 1/3
Fraction d4(10, 6); // создание дроби 1 2/3
Fraction d5(3, 7); // создание дроби 3/7
Fraction d6(3, 8, 2); // создание дроби 2 3/8
Fraction d7; // создание рационального числа 0
. . .
}
3.1.3. Перегрузка операций для класса «Рациональное
число»
Для стандартного использования арифметических операций и
операций сравнения перегрузим соответствующие операторы.
Поскольку любая дробь является вещественным числом,
переопределим оператор явного преобразования объекта класса
Fraction к вещественному типу данных double:
// операция преобразования дроби в тип double
Fraction::operator double()
{
double res = (double)sign *
(intPart * denominator + numerator) /
denominator;
return res;
}
Данное преобразование удобно будет использовать при сравнении
дробей.
Перегрузку операций сравнения двух дробей (больше, больше или
равно, меньше, меньше или равно, равно, не равно) удобно осуществлять
с помощью методов класса Fraction. Эти операторы должны
возвращать значение типа bool, показывающее, истинно ли указанное
сравнение. Операторы "==" и "!=" осуществляют поэлементное
сравнение двух дробей, которые представлены в смешанной форме.
Остальные операторы сравнения используют преобразование дробей к
126
                               Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
    В функции main() приведены различные способы создания
объектов класса Fraction с помощью конструкторов.
      void main(void)
      {
           Fraction d1(2, 3, 0, 1);   // создание дроби 2/3
           Fraction d2(4, 5, 2, -1); // создание дроби -2 4/5
           Fraction d3(4, 3, 1, 1); // создание дроби 2 1/3
           Fraction d4(10, 6);       // создание дроби 1 2/3
           Fraction d5(3, 7);        // создание дроби 3/7
           Fraction d6(3, 8, 2);     // создание дроби 2 3/8
           Fraction d7;         // создание рационального числа 0
           .    .    .
      }



  3.1.3. Перегрузка операций для класса «Рациональное
                                               число»

    Для стандартного использования арифметических операций и
операций сравнения перегрузим соответствующие операторы.
    Поскольку любая дробь является вещественным числом,
переопределим оператор явного преобразования объекта класса
Fraction к вещественному типу данных double:

      // операция преобразования дроби в тип double
      Fraction::operator double()
      {
           double res = (double)sign *
                (intPart * denominator + numerator) /
                                              denominator;
           return res;
      }

    Данное преобразование удобно будет использовать при сравнении
дробей.
    Перегрузку операций сравнения двух дробей (больше, больше или
равно, меньше, меньше или равно, равно, не равно) удобно осуществлять
с помощью методов класса Fraction. Эти операторы должны
возвращать значение типа bool, показывающее, истинно ли указанное
сравнение. Операторы "==" и "!=" осуществляют поэлементное
сравнение двух дробей, которые представлены в смешанной форме.
Остальные операторы сравнения используют преобразование дробей к

126