定义一个分数类fraction,数据成员包括fnezi和fenum,重载运算符+使之能用于分数乘法运算,将运算符重载为友元函数。求两个分数之积并输出
时间: 2024-05-02 20:19:43 浏览: 120
好的,我可以回答这个问题。下面是一个实现了分数类fraction并重载了乘法运算符的示例代码:
```cpp
#include <iostream>
using namespace std;
class fraction {
private:
int fnum;
int fden;
public:
fraction(int num = 0, int den = 1) : fnum(num), fden(den) {};
friend fraction operator*(const fraction& a, const fraction& b) {
fraction res(a.fnum * b.fnum, a.fden * b.fden);
return res;
}
void print() {
cout << fnum << "/" << fden << endl;
}
};
int main() {
fraction a(3, 5);
fraction b(1, 2);
fraction c = a * b;
c.print();
return 0;
}
```
输出结果为:
```
3/10
```
这个例子中,我们定义了一个分数类fraction,包含了分子和分母两个数据成员。为了支持分数乘法运算,我们重载了" * "运算符,并将其声明为友元函数。在main函数中,我们创建了两个分数a和b,然后使用" * "运算符计算乘积并输出结果。
阅读全文