(6)重载+、-运算符,实现两个分数的加减运算; \frac {a}{b}+ \frac {c}{d}= \frac {ad+bc}{bd} \frac {a}{b}- \frac {c}{d}= \frac {ad-bc}{bd}
时间: 2024-05-07 22:13:13 浏览: 28
重载+、-运算符可以实现两个数的加减运算。对于分数的加法,可以按照以下步骤进行计算:
1. 将两个数的分子相乘并相加,得到新分数的分子。
2. 将两个分数的分母相乘,得到新分数的分母。
3. 将新分数的分子和分母进行约分,得到最简形式的分数。
对于分数的减法,可以按照以下步骤进行计算:
1. 将第一个分数的分子乘以第二个分数的分母,得到新分数的第一项。
2. 将第二个分数的分子乘以第一个分数的分母,得到新分数的第二项。
3. 将新分数的第一项和第二项相减,得到新分数的分子。
4. 将两个分数的分母相乘,得到新分数的分母。
5. 将新分数的分子和分母进行约分,得到最简形式的分数。
下面是重载+、-运算符实现两个分数的加减运算的示例代码:
```cpp
class Fraction {
private:
int numerator; // 分子
int denominator; // 分母
public:
Fraction(int num, int den) : numerator(num), denominator(den) {}
// 重载+运算符
Fraction operator+(const Fraction& other) const {
int newNumerator = numerator * other.denominator + other.numerator * denominator;
int newDenominator = denominator * other.denominator;
return Fraction(newNumerator, newDenominator);
}
// 重载-运算符
Fraction operator-(const Fraction& other) const {
int newNumerator = numerator * other.denominator - other.numerator * denominator;
int newDenominator = denominator * other.denominator;
return Fraction(newNumerator, newDenominator);
}
};
// 简化分数的函数,用于约分
void simplifyFraction(Fraction& fraction) {
int gcd = std::gcd(fraction.numerator, fraction.denominator);
fraction.numerator /= gcd;
fraction.denominator /= gcd;
}
int main() {
Fraction fraction1(1, 2);
Fraction fraction2(3, 4);
Fraction sum = fraction1 + fraction2;
simplifyFraction(sum);
std::cout << "Sum: " << sum.numerator << "/" << sum.denominator << std::endl;
Fraction difference = fraction1 - fraction2;
simplifyFraction(difference);
std::cout << "Difference: " << difference.numerator << "/" << difference.denominator << std::endl;
return 0;
}
```