设计一个分数类,该类有通过参数初始化对象,两个分数相加、相减的运算功能,以及按照“a/b”的形式输出分数的功能。c++重载函数
时间: 2024-03-18 16:39:27 浏览: 137
好的,以下是基于C++的分数类的代码实现,其中包含初始化对象、两个分数相加、相减以及输出分数的功能:
```c++
#include<iostream>
using namespace std;
// 分数类
class Fraction {
private:
int numerator; // 分子
int denominator; // 分母
public:
// 构造函数,通过参数初始化对象
Fraction(int n = 0, int d = 1) : numerator(n), denominator(d) {}
// 重载加法运算符,实现两个分数相加的功能
Fraction operator + (Fraction const &obj) {
Fraction res;
res.numerator = numerator * obj.denominator + obj.numerator * denominator;
res.denominator = denominator * obj.denominator;
return res;
}
// 重载减法运算符,实现两个分数相减的功能
Fraction operator - (Fraction const &obj) {
Fraction res;
res.numerator = numerator * obj.denominator - obj.numerator * denominator;
res.denominator = denominator * obj.denominator;
return res;
}
// 输出分数的功能
friend ostream& operator<<(ostream& os, const Fraction& f) {
os << f.numerator << "/" << f.denominator;
return os;
}
};
int main() {
// 初始化两个分数对象
Fraction f1(1, 2), f2(1, 3);
// 输出两个分数的值
cout << "f1 = " << f1 << endl;
cout << "f2 = " << f2 << endl;
// 输出两个分数相加的结果
cout << "f1 + f2 = " << f1 + f2 << endl;
// 输出两个分数相减的结果
cout << "f1 - f2 = " << f1 - f2 << endl;
return 0;
}
```
以上就是分数类的实现,其中通过重载加法和减法运算符实现了两个分数相加、相减的功能,通过重载输出运算符实现了输出分数的功能。
阅读全文