编写一个分数类Frac,包含分子numer、分母denom两个私有变量。 编写Frac类两个构造函数,一个不带任何参数,另一个包含两个参数用于初始化分子numer、分母denom。 编写成员函数Display用于显示成员变量值。 编写一个整数类Integer(基类中的denom恒为1),公有继承Frac类,编写对应的构造函数。 编写主程序,创建两个派生类对象,并分别调用显示函数,显示对象信息。 编写基类成员函数重载==运算符函数,实现分数值的==运算。在主程序中利用上面创建的两个对象测试所编写的运算符重载函数。
时间: 2024-03-20 09:44:17 浏览: 108
设计一个表示分数的类Fraction。这个类用两个int类型的变量分别表示分子和分母。
5星 · 资源好评率100%
好的,我明白了。以下是代码实现:
```cpp
#include <iostream>
using namespace std;
class Frac {
private:
int numer;
int denom;
public:
Frac() {
numer = 0;
denom = 1;
}
Frac(int n, int d) {
numer = n;
denom = d;
}
void Display() {
cout << numer << "/" << denom << endl;
}
bool operator==(const Frac& other) {
return (numer * other.denom == denom * other.numer);
}
};
class Integer : public Frac {
public:
Integer(int n) : Frac(n, 1) {}
};
int main() {
Frac f1(1, 2);
Frac f2(3, 4);
Integer i1(5);
Integer i2(6);
f1.Display();
f2.Display();
i1.Display();
i2.Display();
if (f1 == f2) {
cout << "f1 == f2" << endl;
} else {
cout << "f1 != f2" << endl;
}
if (i1 == i2) {
cout << "i1 == i2" << endl;
} else {
cout << "i1 != i2" << endl;
}
return 0;
}
```
运行结果为:
```
1/2
3/4
5/1
6/1
f1 != f2
i1 != i2
```
其中,Frac类中重载的==运算符函数实现了分数值的比较,Integer类继承了Frac类的==运算符函数。在主程序中,我们创建了四个对象f1、f2、i1、i2,并分别调用了它们的Display函数,显示了对象的信息。接着,我们使用重载的==运算符函数比较了f1和f2,以及i1和i2的分数值是否相等,并输出了比较结果。
阅读全文