设计一个分数类,其数据成员包括分子分母,分别用友元和成员函数两种方式实现分数对象的加、减运算。
时间: 2023-12-03 10:42:18 浏览: 79
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
5星 · 资源好评率100%
以下是一个简单的分数类的实现,其中包括数据成员分子和分母,以及友元函数和成员函数实现的加减运算:
```c++
#include <iostream>
using namespace std;
class Fraction {
private:
int numerator; // 分子
int denominator; // 分母
public:
Fraction(int num, int den) : numerator(num), denominator(den) {}
friend Fraction operator+(const Fraction& f1, const Fraction& f2);
friend Fraction operator-(const Fraction& f1, const Fraction& f2);
void print() {
cout << numerator << "/" << denominator << endl;
}
};
Fraction operator+(const Fraction& f1, const Fraction& f2) {
int num = f1.numerator * f2.denominator + f2.numerator * f1.denominator;
int den = f1.denominator * f2.denominator;
return Fraction(num, den);
}
Fraction operator-(const Fraction& f1, const Fraction& f2) {
int num = f1.numerator * f2.denominator - f2.numerator * f1.denominator;
int den = f1.denominator * f2.denominator;
return Fraction(num, den);
}
int main() {
Fraction f1(1, 2);
Fraction f2(3, 4);
Fraction f3 = f1 + f2;
Fraction f4 = f2 - f1;
f3.print(); // 输出 5/4
f4.print(); // 输出 1/4
return 0;
}
```
在这个例子中,我们定义了一个 `Fraction` 类表示分数,其数据成员包括 `numerator` 和 `denominator` 分别表示分子和分母。我们还实现了两个友元函数 `operator+` 和 `operator-`,用于实现 `Fraction` 对象的加减运算。最后在 `main` 函数中,我们创建了两个 `Fraction` 对象,分别进行加减运算并输出结果。
注意,在这个例子中,我们没有实现乘除等其它运算,读者可以根据需要自行扩展。
阅读全文