用c++实现一个分数的类
时间: 2023-06-04 18:06:29 浏览: 119
好的,你想要实现一个分数的类,我们可以定义一个名为 "Fraction" 的类,其中包含分子和分母两个成员变量。
下面是一个 c++ 的示例代码:
```c++
class Fraction {
public:
int numerator; // 分子
int denominator; // 分母
// 构造函数
Fraction(int n, int d): numerator(n), denominator(d) {}
// 加法
Fraction operator+ (const Fraction& other) const {
int num = numerator * other.denominator + other.numerator * denominator;
int den = denominator * other.denominator;
return Fraction(num, den);
}
// 减法
Fraction operator- (const Fraction& other) const {
int num = numerator * other.denominator - other.numerator * denominator;
int den = denominator * other.denominator;
return Fraction(num, den);
}
// 乘法
Fraction operator* (const Fraction& other) const {
int num = numerator * other.numerator;
int den = denominator * other.denominator;
return Fraction(num, den);
}
// 除法
Fraction operator/ (const Fraction& other) const {
int num = numerator * other.denominator;
int den = denominator * other.numerator;
return Fraction(num, den);
}
// 约分
void simplify() {
int gcd = __gcd(numerator, denominator);
numerator /= gcd;
denominator /= gcd;
}
};
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.simplify(); // 约分
f4.simplify();
f5.simplify();
f6.simplify();
cout << f3.numerator << "/" << f3.denominator << endl; // 输出 5/4
cout << f4.numerator << "/" << f4.denominator << endl; // 输出 -1/4
cout << f5.numerator << "/" << f5.denominator << endl; // 输出 3/8
cout << f6.numerator << "/" << f6.denominator << endl; // 输出 2/3
return 0;
}
```
希望这可以帮助你实现一个分数的类。
阅读全文
相关推荐












