第十三周项目二:分数类中的运算符重载(3)

原创 2016年05月31日 14:17:18

问题及代码:

/*Copyright (c)2016,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:main.cpp
*作    者:崔青青
*完成日期:2016年5月31日
*版 本 号:v1.0
*问题描述:
*输入描述:无
*输出描述:无
*/
#include <iostream>

using namespace std;
class CFraction
{
private:
    int nume;//分子
    int deno;//分母
public:
    //构造函数以及运算符重载函数声明。
    CFraction(int n=0,int d=0){nume=n;deno=d;}
    CFraction operator+();
    CFraction operator-();
    CFraction operator~();
    void display();
    };
//重载函数的实现以及用于测试的main函数。
void CFraction::display()
{
    cout<<"分子:"<<nume<<" "<<"分母"<<deno<<endl;
}
CFraction CFraction::operator+()
{
    CFraction c;
            if((nume>0&&deno>0)||(nume<0&&deno<0))
            {
                c.nume=nume;
                c.deno=deno;
            }
            else if(nume<0&&deno>0)
            {
                c.nume=-nume;
                c.deno=deno;
            }
            else if(nume>0&&deno<0)
            {
                c.nume=nume;
                c.deno=-deno;
            }
        return c;
}
CFraction CFraction::operator-()
{
    CFraction c;
            if((nume>0&&deno>0)||(nume<0&&deno<0))
            {
                c.nume=-nume;
                c.deno=deno;
            }
            else if(nume<0&&deno>0)
            {
                c.nume=-nume;
                c.deno=deno;
            }
            else if(nume>0&&deno<0)
            {
                c.nume=nume;
                c.deno=-deno;
            }
        return c;
}
CFraction CFraction::operator~()
{
    CFraction c;
    c.nume=deno;;
    c.deno=nume;
    return c;
}

    int main()
{
    CFraction c1(2,3),c3;
    c3=c1.operator+();
    c3.display();
    c3=c1.operator-();
    c3.display();
    c3=c1.operator~();
    c3.display();
    return 0;
}

运行结果:

知识点总结:

从这个例子中我们可以知道,同一种符号可以被赋予不同的意义,运算符重载函数真是神奇。

学习心得:

在取绝对值和相反数的时候,分子取负和分母取负的情况都要考虑进去。

版权声明:本文为博主原创文章,未经博主允许不得转载。

C++实践参考——分数类中的运算符重载

【项目1-分数类中的运算符重载】   (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。class CFraction { private: ...
  • sxhelijian
  • sxhelijian
  • 2016年05月19日 21:44
  • 3206

C++之运算符重载(分数的运算)

今天在小甲鱼老师的视频中学到了运算符重载知识,并通过实例进行了讲解,先将源代码向大家分享 至今扔没有完全搞懂欧几里得的具体原理,欢迎大家多多交流。 部分转载:http://blog.csdn.net/...
  • xk_snail
  • xk_snail
  • 2015年04月17日 22:10
  • 464

定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然。

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李磊涛 *完成时间:2016...
  • a1724002236
  • a1724002236
  • 2016年05月28日 14:56
  • 326

第八周-运算符重载-分数类的运算符重载(1)-加减乘除以及大小比较

/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:刘畅 * 完成...
  • Liuchang54
  • Liuchang54
  • 2015年04月25日 13:20
  • 876

实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李磊涛 *完成时间:2016...
  • a1724002236
  • a1724002236
  • 2016年05月28日 14:08
  • 1060

《C++语言基础》实践参考——分数类中的运算符重载

返回:贺老师课程教学链接【项目3-分数类中的运算符重载】  (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。可以在第4周分数类代码的基础上开始...
  • sxhelijian
  • sxhelijian
  • 2015年04月21日 18:40
  • 1737

第8周 项目3 分数类中的运算符重载

问题及代码: /*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:20...
  • liu_feng_zi_
  • liu_feng_zi_
  • 2015年05月10日 21:28
  • 158

成员函数重载运算符和友元函数重载运算符的比较

1.对双目运算符而言,成员函数重载运算符的函数参数表中只有一个参数,而用友元函数重载运算符函数参数表中含有两个参数。   对单木运算符来说,成员函数重载运算符的函数参数表中没有参数,而用友元函数重载运...
  • u011450537
  • u011450537
  • 2014年11月13日 10:26
  • 2783

八周 项目3 分数类中的运算符重载

/* * 程序的版权和版本声明部分: * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 ...
  • u012369106
  • u012369106
  • 2014年04月17日 13:36
  • 468

第9周项目3分数类中的运算符重载

编号及代码: /* *Copyright(c)2015,烟台大学计算机与工程学院 *All rights reserved; *文件名称:score.cpp *作者:范星月 *完成日期:2...
  • a716121
  • a716121
  • 2015年05月11日 17:21
  • 224
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第十三周项目二:分数类中的运算符重载(3)
举报原因:
原因补充:

(最多只允许输入30个字)