条款24:若所有参数皆需类型转换,请为此采用 non-member 函数
class Rational {
public:
Rational(int numerator = 0, int denominator = 1);
...
};class Rational {
public:
const Rational operator* (const Rational& rhs) const;
};
Rational result, oneHalf;
// 尝试混合运算
result = oneHalf * 2; // 成功;
result = 2 * oneHalf; // 失败;const Rational operator*(const Rational& lhs, const Rational& rhs) {
return Rational(lhs.numerator() * rhs.numerator(), lhs.denominator() * rhs.denominator());
}Last updated