有理数加法运用运算符重载代码
时间: 2024-07-16 21:00:40 浏览: 159
在C++中,你可以使用运算符重载(operator overloading)来改变基本数据类型如int的行为,使其适用于有理数的加法操作。对于有理数,通常我们会定义一个`Rational`类,然后重载加法`+`运算符来实现两个有理数的相加。
以下是一个简单的例子,展示了如何为`Rational`类的加法操作符重载:
```cpp
class Rational {
private:
int numerator, denominator;
public:
// 构造函数
Rational(int num, int den) : numerator(num), denominator(den) {
simplify();
}
// 其他必要的成员函数(如简化分数)
// 重载加法运算符
Rational operator+(const Rational& other) const {
int newNum = numerator * other.denominator + other.numerator * denominator;
int newDen = denominator * other.denominator;
return Rational(newNum, newDen);
}
// 为了使赋值兼容,也可以重载+=操作符
Rational& operator+=(const Rational& other) {
numerator += other.numerator;
denominator *= other.denominator;
simplify();
return *this;
}
// 私有简化函数(这里省略)
void simplify() {
// 这里实现消除最大公约数等简化过程
}
};
// 示例
int main() {
Rational a(3, 4);
Rational b(5, 6);
a += b; // 这会自动调用自定义的加法运算符
std::cout << a.numerator << "/" << a.denominator << std::endl; // 输出有理数结果
return 0;
}
```
阅读全文