C++ 运算符重载转换


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 的默认参数。

然后,您将不需要更多重载来+,或者您打算随着时间的推移支持的任何额外重载(例如-*等(。

相关内容

  • 没有找到相关文章