用C加加来回答.定义一个分数类Fraction,数据成员包括fnezi(分子)和fenmu(分母,不为零),重载运算符“*”,使之能用于分数的乘法运算。将运算符重载为友元函数。编写程序,求两个分数之积并输出。
时间: 2024-09-29 11:07:08 浏览: 33
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
5星 · 资源好评率100%
在C++中,可以这样定义一个分数类`Fraction`,并实现分数的乘法运算符`*`作为友元函数:
```cpp
#include <iostream>
using namespace std;
// 分数类 Fraction
class Fraction {
private:
int numerator; // 分子
int denominator; // 分母,假设非零
public:
// 构造函数,初始化分数
explicit Fraction(int num = 0, int den = 1) : numerator(num), denominator(den) {}
// 重载*运算符,实现分数乘法
friend Fraction operator*(const Fraction& a, const Fraction& b); // 将*声明为友元函数
// 显示分数
void display() const {
cout << "(" << numerator << "/" << denominator << ")";
}
};
// 实现 * 运算符
Fraction operator*(const Fraction& a, const Fraction& b) {
int new_numerator = a.numerator * b.numerator;
int new_denominator = a.denominator * b.denominator;
return Fraction(new_numerator, new_denominator);
}
int main() {
Fraction f1(3, 5), f2(4, 7);
// 计算两个分数的乘积
Fraction product = f1 * f2;
// 输出结果
cout << "The product of " << f1.display() << " and " << f2.display() << " is: ";
product.display();
cout << endl;
return 0;
}
```
这个程序会计算出两个分数`f1`和`f2`的乘积,并显示出来。注意,这里我们将`*`运算符重载为友元函数是为了可以在类的外部访问到它的操作。当你运行这个程序,它会输出两个分数的乘积。
阅读全文