ВУЗ:
Составители:
Рубрика:
14
// операция преобразования дроби в тип double
public static explicit operator double(Fraction ob)
{
double res = (double)ob.sign*(ob.intPart * ob.denominator +
ob.numerator) / ob.denominator;
return res;
}
Данное преобразование удобно будет использовать при сравнении
дробей.
Перегрузку операций сравнения двух дробей (больше, больше или
равно, меньше, меньше или равно, равно, не равно) осуществим с помощью
статических методов класса Fraction. Эти операторы должны возвращать
значение типа bool. Заметим, что эти операторы следует перегружать
«парами». Например, если класс содержит перегруженную операцию ”==”,
то обязательно в нем должна быть перегружена и операция ”!=”.
Операторы ”==” и ”!=” осуществляют поэлементное сравнение двух
дробей, которые представлены в смешанном виде. Остальные операторы
сравнения используют преобразование дроби к вещественному числу и
сравнивают полученные значения.
// операции сравнения двух дробей
public static bool operator == (Fraction ob1, Fraction ob2)
{
if (ob1.sign != ob2.sign || ob1.intPart != ob2.intPart ||
ob1.numerator * ob2.denominator !=
ob1.denominator * ob2.numerator)
return false;
return true;
}
public static bool operator != (Fraction ob1, Fraction ob2)
{
if (ob1.sign == ob2.sign && ob1.intPart == ob2.intPart &&
ob1.numerator * ob2.denominator ==
ob1.denominator * ob2.numerator)
return false;
return true;
}
public static bool operator > (Fraction ob1, Fraction ob2)
{
if ((double)ob1 <= (double)ob2)
return false;
return true;
}
// операция преобразования дроби в тип double public static explicit operator double(Fraction ob) { double res = (double)ob.sign*(ob.intPart * ob.denominator + ob.numerator) / ob.denominator; return res; } Данное преобразование удобно будет использовать при сравнении дробей. Перегрузку операций сравнения двух дробей (больше, больше или равно, меньше, меньше или равно, равно, не равно) осуществим с помощью статических методов класса Fraction. Эти операторы должны возвращать значение типа bool. Заметим, что эти операторы следует перегружать «парами». Например, если класс содержит перегруженную операцию ”==”, то обязательно в нем должна быть перегружена и операция ”!=”. Операторы ”==” и ”!=” осуществляют поэлементное сравнение двух дробей, которые представлены в смешанном виде. Остальные операторы сравнения используют преобразование дроби к вещественному числу и сравнивают полученные значения. // операции сравнения двух дробей public static bool operator == (Fraction ob1, Fraction ob2) { if (ob1.sign != ob2.sign || ob1.intPart != ob2.intPart || ob1.numerator * ob2.denominator != ob1.denominator * ob2.numerator) return false; return true; } public static bool operator != (Fraction ob1, Fraction ob2) { if (ob1.sign == ob2.sign && ob1.intPart == ob2.intPart && ob1.numerator * ob2.denominator == ob1.denominator * ob2.numerator) return false; return true; } public static bool operator > (Fraction ob1, Fraction ob2) { if ((double)ob1 <= (double)ob2) return false; return true; } 14
Страницы
- « первая
- ‹ предыдущая
- …
- 13
- 14
- 15
- 16
- 17
- …
- следующая ›
- последняя »