用c++实现一个分数类Fraction,能读写“1/2”样子的分数。
时间: 2024-02-09 09:08:46 浏览: 131
下面是一个简单的 C++ 分数类 `Fraction` 的实现,它可以读写形如“1/2”样子的分数:
```c++
#include <iostream>
using namespace std;
class Fraction {
public:
Fraction(int n = 0, int d = 1) : numerator(n), denominator(d) {}
friend istream& operator>>(istream& in, Fraction& f);
friend ostream& operator<<(ostream& out, const Fraction& f);
private:
int numerator; // 分子
int denominator; // 分母
};
istream& operator>>(istream& in, Fraction& f) {
char c;
in >> f.numerator >> c >> f.denominator;
return in;
}
ostream& operator<<(ostream& out, const Fraction& f) {
out << f.numerator << '/' << f.denominator;
return out;
}
int main() {
Fraction f;
cout << "请输入一个分数:";
cin >> f;
cout << "你输入的分数是:" << f << endl;
return 0;
}
```
在这个实现中,`Fraction` 类有两个私有成员变量 `numerator` 和 `denominator`,分别表示分数的分子和分母。它有一个默认的构造函数,可以接受两个参数,用来初始化分子和分母。它还有两个友元函数 `operator>>` 和 `operator<<`,分别用于输入和输出分数。
在 `operator>>` 函数中,我们先读取分子,然后读取一个字符(即分数线),最后读取分母。在 `operator<<` 函数中,我们直接输出分子和分母,中间用分数线隔开。
在主函数中,我们先创建一个 `Fraction` 对象 `f`,然后让用户输入一个分数并读入到 `f` 中,最后输出 `f`。
阅读全文