【C++】运算符重载 fraction示例

//1.整理并扩充本章中的fraction示例,补齐你认为尚缺的运算符函数声明

fraction.h文件

#ifndef fractionH
#define fractionH
#include <iostream>
using namespace std;
class fraction
{
    long num;//分子
    long den;//分母
    void standardize();//分母标准化函数
public:
    fraction(long n=0,long d=1);//构造函数,在.cpp文件实现
    fraction operator -()const{return fraction(-num,den);}//分数求取负
    fraction operator +(fraction f){//分数求和
        return fraction(num*f.den+den*f.num,den*f.den);
        }

    fraction &operator ++()//前缀++
    {
        num+=den;
        return *this;
    }
    fraction operator ++(int)//后缀++
    {
        num+=den;
        return fraction(num-den,den);
    }
    operator long()const{return num/den;}//必须作为成员函数重载,不需要返回值类型的声明,因为自己就是类型了。
    fraction& operator =(fraction f)//只能作为成员函数重载,这个函数写于不写都不影响,默认赋值操作也是如此
    {
        num=f.num
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值