定义一个有理数类,将有理数乘法的运算符重载函数定义为成员函数,将有理数除法的运算符重载函数定义为友元函数,在主函数中执行乘除运算验证结果。
时间: 2023-06-09 21:03:49 浏览: 260
C++运算符重载 成员函数与友元函数详解
5星 · 资源好评率100%
好的,让我来回答你的问题。以下是定义一个有理数类的示例代码:
```
#include <iostream>
using namespace std;
class Rational {
private:
int num; // 分子
int den; // 分母
public:
Rational(int num = 0, int den = 1) {
this->num = num;
this->den = den;
}
// 重载乘法运算符 *
Rational operator*(const Rational& r) const {
Rational res;
res.num = this->num * r.num;
res.den = this->den * r.den;
return res;
}
friend Rational operator/(const Rational& r1, const Rational& r2);
};
// 重载除法运算符 /
Rational operator/(const Rational& r1, const Rational& r2) {
Rational res;
res.num = r1.num * r2.den;
res.den = r1.den * r2.num;
return res;
}
int main() {
Rational r1(1, 2), r2(2, 3);
Rational res1 = r1 * r2; // 使用成员函数重载的乘法运算符 *
Rational res2 = r1 / r2; // 使用友元函数重载的除法运算符 /
cout << res1.num << "/" << res1.den << endl;
cout << res2.num << "/" << res2.den << endl;
return 0;
}
```
在该示例代码中,我们定义了一个有理数类,其中分别使用成员函数和友元函数分别重载了乘法运算符 * 和除法运算符 /。在主函数中,我们分别将两个有理数进行乘法和除法运算,并输出结果。
阅读全文