定义一个分数类,通过运算符重载,实现分数的加减乘除运算及分数的显示,要求必须在main函数中进行测试。
时间: 2024-02-17 11:02:55 浏览: 101
c++综合性实验设计
好的,我来为您解答。
首先,我们需要定义一个分数类,包括分子和分母两个私有成员变量,以及构造函数、析构函数和显示函数。代码如下:
```c++
class Fraction {
private:
int numerator; // 分子
int denominator; // 分母
public:
Fraction(int n = 0, int d = 1) : numerator(n), denominator(d) {}
~Fraction() {}
void display() const { cout << numerator << "/" << denominator; }
};
```
接下来,我们需要重载加减乘除运算符。分别实现相应的运算,代码如下:
```c++
Fraction operator+(const Fraction& f1, const Fraction& f2) {
int n = f1.numerator * f2.denominator + f2.numerator * f1.denominator;
int d = f1.denominator * f2.denominator;
return Fraction(n, d);
}
Fraction operator-(const Fraction& f1, const Fraction& f2) {
int n = f1.numerator * f2.denominator - f2.numerator * f1.denominator;
int d = f1.denominator * f2.denominator;
return Fraction(n, d);
}
Fraction operator*(const Fraction& f1, const Fraction& f2) {
int n = f1.numerator * f2.numerator;
int d = f1.denominator * f2.denominator;
return Fraction(n, d);
}
Fraction operator/(const Fraction& f1, const Fraction& f2) {
int n = f1.numerator * f2.denominator;
int d = f1.denominator * f2.numerator;
return Fraction(n, d);
}
```
最后,在main函数中进行测试。代码如下:
```c++
int main() {
Fraction f1(1, 2);
Fraction f2(3, 4);
Fraction f3 = f1 + f2;
Fraction f4 = f1 - f2;
Fraction f5 = f1 * f2;
Fraction f6 = f1 / f2;
f3.display(); // 输出 5/4
f4.display(); // 输出 -1/4
f5.display(); // 输出 3/8
f6.display(); // 输出 2/3
return 0;
}
```
完整代码如下:
阅读全文