已知一个有理数类 zrf_Ratio,实现以下的操作符重载
friend zrf_Ratio operator-(const zrf_Ratio&);
friend zrf_Ratio operator+(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator-(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator*(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator/(const zrf_Ratio&, const zrf_Ratio&);
friend std::ostream& operator<<(std::ostream&, const zrf_Ratio&);
friend std::istream& operator>>(std::istream&, zrf_Ratio&);
friendbooloperator==(const zrf_Ratio&, const zrf_Ratio&);
friendbooloperator<(const zrf_Ratio&, const zrf_Ratio&);
zrf_Ratio& operator=(const zrf_Ratio&);
zrf_Ratio& operator*=(const zrf_Ratio&);
zrf_Ratio operator++();
zrf_Ratio operator++(int);
这里给出类的定义及重载操作符的声明,请大家完成函数的实现,并用主程序验证相关操作符重载的正确性,输出相关的实验结果
class zrf_Ratio
{
friend std::ostream& operator<<(std::ostream&, const zrf_Ratio&);
friend std::istream& operator>>(std::istream&, zrf_Ratio&);
friendbooloperator==(const zrf_Ratio&, const zrf_Ratio&);
friendbooloperator<(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator-(const zrf_Ratio&);
friend zrf_Ratio operator+(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator-(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator*(const zrf_Ratio&, const zrf_Ratio&);
friend zrf_Ratio operator/(const zrf_Ratio&, const zrf_Ratio&);
public:
zrf_Ratio& operator=(const zrf_Ratio&);
zrf_Ratio& operator*=(const zrf_Ratio&);
zrf_Ratio operator++();
zrf_Ratio operator++(int);
zrf_Ratio(int=0,int=1);
zrf_Ratio(const zrf_Ratio&);
int numerator() const;
int denominator() const;
zrf_Ratio reciprocal() const;
void invert();
operatordouble() const;
void print() const;
private:
int num;
int den;
void reduce();
};
好的话还有加分。
C++高分求解答。
答案:3 悬赏:50 手机版
解决时间 2021-03-17 16:29
- 提问者网友:不要迷恋哥
- 2021-03-17 03:21
最佳答案
- 五星知识达人网友:轮獄道
- 2021-03-17 03:41
..........这要写的也太多函数了,给个样板自己做吧:
zrt_Ratio operator*(const zrf_Ratio& r1, const zrf_ration& r2){
num=r1.num*r2.num;
den=r1.den*r2.den;
return *this;
}
zrt_Ratio operator*(const zrf_Ratio& r1, const zrf_ration& r2){
num=r1.num*r2.num;
den=r1.den*r2.den;
return *this;
}
全部回答
- 1楼网友:梦中风几里
- 2021-03-17 05:27
case 2:
{
double compare=getaverage(s,m);
for(int k=0;k<m;k++)
if(s[k])-----
}
case 3:
{
char code[max];
cout<<"输入你想要找的学号:";
cin>>code;
int result=search(s,m,code);
if(result==-1)
cot<<"您输入的学号不存在!!!"<<endl;-------
else
print(s[result]);
}
目测发现这两处,现在我机器上没装编译器。其它的不好说你先改改看吧
- 2楼网友:孤老序
- 2021-03-17 05:00
麻烦说清楚点 重载的运算符要做什么 . 对 对象的什么成员操作??
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯