, , - friend s. operator+ :
const Rational operator+(const Rational& rhs, const Rational& lhs)
{
double newNumerator = rhs.numerator() * lhs.denominator() +
rhs.denominator() * lhs.numerator();
return Rational(newNumerator, rhs.denominator() * lhs.denominator());
}
:
Item 24 ++ ( ). , , , , non-member non-friend.
, Rational :
Rational::Rational(double numerator = 0, double denominator = 1);
, operator+ -, :
Rational oneHalf(1, 2);
oneHalf + 2;
2 + oneHalf;
operator+ . , operator+ Rational - , .
Effective ++, Item 23: , -, -.