class Rational {
public:
Rational(int numerator = 0, int denominator = 1);
int numerator() cont;
int denominator() const;
const Rational operator*(const Rational& rhs) const;
private:
...
};
Rational oneHalf(1, 2);
Rational result;
result = 2 * oneHalf;
class Rational {
public:
Rational(int numerator = 0, int denominator = 1);
...
private:
...
};
const Rational operator*(const Rational& lhs, const Rational& rhs) {
return (lhs.numerator() * rhs.numerator(), rhs.denominator() * rhs.denominator());
}
Rational oneFourth(1, 4);
Rational result;
result = 2 * oneFourth; // it works! (int to Rational is implicit type conversion)