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

原创 2016年05月31日 14:07:47

问题及代码:

/*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 &c2);
    CFraction operator-(CFraction &c2);
    CFraction operator*(CFraction &c2);
    CFraction operator/(CFraction &c2);
    void display();
    };
//重载函数的实现以及用于测试的main函数。
void CFraction::display()
{
    cout<<"分子:"<<nume<<" "<<"分母"<<deno<<endl;
}
CFraction CFraction::operator+(CFraction &c2)
{
    CFraction c;
    if(deno==c2.deno)
    {
        c.deno=deno;
        c.nume=nume+c2.nume;
    }
    else
        {
            c.deno=deno*c2.deno;
            nume=nume*c2.deno;
            c2.nume=c2.nume*deno;
            c.nume=nume+c2.nume;
        }
        return c;
}
CFraction CFraction::operator-(CFraction &c2)
{
    CFraction c;
    if(deno==c2.deno)
    {
        c.deno=deno;
        c.nume=nume-c2.nume;
    }
    else
        {
            c.deno=deno*c2.deno;
            nume=nume*c2.deno;
            c2.nume=c2.nume*deno;
            c.nume=nume-c2.nume;
        }
        return c;
}
CFraction CFraction::operator*(CFraction &c2)
{
    CFraction c;
    c.nume=nume*c2.nume;
    c.deno=deno*c2.deno;
    return c;
}
CFraction CFraction::operator/(CFraction &c2)
{
    CFraction c;
    c.nume=nume*c2.deno;
    c.deno=deno*c2.nume;
    return c;
}
    int main()
{
    CFraction c1(2,3),c2(3,4),c3;
    c3=c1+c2;
    c3.display();
    c3=c1-c2;
    c3.display();
    c3=c1*c2;
    c3.display();
    c3=c1/c2;
    c3.display();
    return 0;
}

运行结果:

知识点总结:

运算符重载要注意声明函数时的写法,在构造函数式时的写法,在main函数中操作时有两种方式。

学习心得:

运算符重载函数是很方便的一类函数,但是需要注意的问题也有很多。

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

相关文章推荐

第十三周项目 1分数类中的运算符重载

/* *Copyright(c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:李德坤 *完成日期:20...

第十三周【项目 1分数类中的运算符重载】

/* *Copyright(c) 2016, 烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:main.cpp *作 者:张珩瑞 *完成日期:20...

第十三周上机实践项目 项目1--分数类中的运算符重载

问题及代码: 【项目1-分数类中的运算符重载】    (1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。 class CFract...

第十三周项目-项目1-分数类中的运算符重载

/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:刘涛 * 完成日期:2016年5月21日 *...

第十三周项目-项目1-(2)-分数类中的运算符重载

/*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:刘涛 * 完成日期:2016年5月21日 *...

第十三周项目一分数类中的运算符重载

/*Copyright(c)2016,烟台大学计算机与控制工程学院 *All right reserved. *文件名称:main。cpp *作 者:闫舒 *完成日期:2016年6月21...

第9周项目3-分数类中的运算符重载续(1)

/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:毕玉堂 *完成日期:2015年5月17日 *版本号:v1....

第八周上机实践项目3——分数类的运算符重载(1)

(1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。可以在第4周分数类代码的基础上开始工作。 问题及代码 /* * Copyright (c...

第八周 项目三-分数类中的运算符重载(1)

(1)实现分数类中的运算符重载,在分数类中可以完成分数的加减乘除(运算后再化简)、比较(6种关系)的运算。可以在第4周分数类代码的基础上开始工作。 /* * Copyright (c) 2015, ...

第13周项目1—分数类中的运算符重载 (3)

 *Copyright(c) 2016.烟台大学计算机与控制工程学院 *ALL rights  reserved.  *文件名称:main.cpp   *作者:孙亚茹 *完成日期:201...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第十三周项目二:分数类中的运算符重载(1)
举报原因:
原因补充:

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