c++定义一个有理数类,重载比较运算符
时间: 2023-07-10 16:03:59 浏览: 204
下面是一个简单的有理数类的定义,其中重载了比较运算符:
```cpp
#include <iostream>
using namespace std;
class Rational {
private:
int numerator; // 分子
int denominator; // 分母
public:
Rational(int num, int den) : numerator(num), denominator(den) {}
void print() {
cout << numerator << "/" << denominator << endl;
}
bool operator==(const Rational& r) const {
return numerator * r.denominator == denominator * r.numerator;
}
bool operator<(const Rational& r) const {
return numerator * r.denominator < denominator * r.numerator;
}
bool operator>(const Rational& r) const {
return numerator * r.denominator > denominator * r.numerator;
}
};
int main() {
Rational r1(1, 2);
Rational r2(2, 3);
if (r1 == r2) {
cout << "r1 equals r2" << endl;
} else if (r1 < r2) {
cout << "r1 is less than r2" << endl;
} else if (r1 > r2) {
cout << "r1 is greater than r2" << endl;
}
return 0;
}
```
在上面的代码中,我们定义了一个 `Rational` 类,它有一个构造函数来初始化分子和分母。我们还重载了 `operator==`、`operator<` 和 `operator>`,以便能够比较两个有理数的大小。在 `main` 函数中,我们创建了两个有理数对象 `r1` 和 `r2`,并使用重载的比较运算符来比较它们的大小。
阅读全文