永发信息网

C++高分求解答。

答案:3  悬赏:50  手机版
解决时间 2021-03-17 16:29
  • 提问者网友:不要迷恋哥
  • 2021-03-17 03:21
已知一个有理数类 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();
};

好的话还有加分。
最佳答案
  • 五星知识达人网友:轮獄道
  • 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;
}
全部回答
  • 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
麻烦说清楚点 重载的运算符要做什么 . 对 对象的什么成员操作??
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯