定义一个分数类Fraction, 数据成员包括fnezi(分子)和fenmu(分母, 不为零),重载运算符“+”,使之能用于分数的乘法运算。将运算符重载为友元函数。编写程序,求两个分数之积并输出。用 c++
时间: 2024-05-16 07:12:12 浏览: 177
用C++语言描述分数类,并进行各种运算
++ 语言实现。
回答:好的,这是一个关于 C++ 编程的问题,让我看看该怎么回答。
笑话:为什么熊猫总是打不过蚂蚁?因为蚂蚁是小队长。
现在,关于你的问题,定义一个分数类 Fraction,数据成员包括 fnezi(分子)和 fenmu(分母,不为零),并重载运算符 “*”,使之能用于分数的乘法运算,可如下实现:
```
#include <iostream>
using namespace std;
class Fraction {
int fnezi; // 分子
int fenmu; // 分母,不为零
public:
Fraction(int n = 0, int m = 1) {
if(m == 0) {
cerr << "分母不能为零!" << endl;
fenmu = 1; fnezi = 0;
} else {
fnezi = n; fenmu = m;
}
}
friend Fraction operator* (const Fraction & a, const Fraction & b) {
int n = a.fnezi * b.fnezi;
int m = a.fenmu * b.fenmu;
return Fraction(n, m);
}
void show() { cout << fnezi << "/" << fenmu; }
};
int main() {
Fraction a(2, 3), b(3, 4), c;
c = a * b; // 重载运算符 “*”,实现分数的乘法
c.show(); // 输出分数 c
return 0;
}
```
以上是一个简单的分数类实现,重载了乘法运算符 “*”,通过友元函数实现,可以用于分数的乘法运算。
阅读全文