ВУЗ:
Составители:
Рубрика:
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
if (double(*this) > double(a))
return false;
return true;
}
Каждая арифметическая операция (+, -, *, /) перегружена тремя
функциями-операторами для случаев, когда:
• операндами операции являются объекты класса Fraction;
• первый операнд – дробь, второй – целое число;
• первый операнд – целое число, второй – объект-дробь.
Для первых двух случаев создаются методы класса, для третьего
случая – дружественная функция с двумя параметрами. Результатом
выполнения этих операторов является новая дробь. Оператор сложения
двух дробей после формирования результата осуществляет
преобразование к смешанному виду.
// операция сложения двух дробей
Fraction Fraction::operator + (Fraction a)
{
Fraction res;
res.numerator = sign * (intPart * denominator +
numerator) * a.denominator +
a.sign *(a.intPart * a.denominator +
a.numerator) * denominator;
res.denominator = denominator * a.denominator;
if (res.numerator < 0)
{
res.numerator *= -1; res.sign = -1;
}
res.GetMixedView();
return res;
}
В определении функции сложения дроби с целым числом
осуществляется преобразование этого целого числа в дробь (создается
новый объект класса Fraction, значение которого равно целому числу)
и вызов оператора сложения двух дробей.
// операция сложения дроби и целого числа
Fraction Fraction::operator + (int a)
{
Fraction res;
Fraction b(0, 1, abs(a), a/abs(a)); // b = a
res = (*this) + b; //сложение двух дробей
return res;
128
Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
if (double(*this) > double(a))
return false;
return true;
}
Каждая арифметическая операция (+, -, *, /) перегружена тремя
функциями-операторами для случаев, когда:
• операндами операции являются объекты класса Fraction;
• первый операнд – дробь, второй – целое число;
• первый операнд – целое число, второй – объект-дробь.
Для первых двух случаев создаются методы класса, для третьего
случая – дружественная функция с двумя параметрами. Результатом
выполнения этих операторов является новая дробь. Оператор сложения
двух дробей после формирования результата осуществляет
преобразование к смешанному виду.
// операция сложения двух дробей
Fraction Fraction::operator + (Fraction a)
{
Fraction res;
res.numerator = sign * (intPart * denominator +
numerator) * a.denominator +
a.sign *(a.intPart * a.denominator +
a.numerator) * denominator;
res.denominator = denominator * a.denominator;
if (res.numerator < 0)
{
res.numerator *= -1; res.sign = -1;
}
res.GetMixedView();
return res;
}
В определении функции сложения дроби с целым числом
осуществляется преобразование этого целого числа в дробь (создается
новый объект класса Fraction, значение которого равно целому числу)
и вызов оператора сложения двух дробей.
// операция сложения дроби и целого числа
Fraction Fraction::operator + (int a)
{
Fraction res;
Fraction b(0, 1, abs(a), a/abs(a)); // b = a
res = (*this) + b; //сложение двух дробей
return res;
128
Страницы
- « первая
- ‹ предыдущая
- …
- 126
- 127
- 128
- 129
- 130
- …
- следующая ›
- последняя »
