class Fraction
{
friend Fraction operator+(const Fraction& f1, const Fraction& f2);
private:
int numerator;
int denominator;
};
--------------------------------------------------------------------
Fraction operator+(const Fraction& f1, const Fraction& f2)
{
Fraction r; // declare a Fraction to hold the result
// load result Fraction with sum of adjusted numerators
r.numerator = (f1.numerator*f2.denominator)
+ (f2.numerator*f1.denominator);
// load result with the common denominator
r.denominator = f1.denominator * f2.denominator;
return r; // return the result Fraction
}
有没有办法让运算符+用整数添加分数(来自分数类(?
例:
Fraction frac(7/15), x = frac + 13;
是的,这是可能的,尽管我不会那样做。
大概(在你的实际代码中(你有一个Fraction
的构造函数,它接受两个参数:一个分子和一个分母。使分母成为设置为 1 的默认参数。
然后,您将不需要更多重载来+
,或者您打算随着时间的推移支持的任何额外重载(例如-
、*
等(。