删除文章

确定要删除这篇文章吗?

取消
确定

简单有理数(Rational)实现

     阅读(454)  2018-06-02 23:03:07

class Rational {
public:
    Rational(int a = 0, int b = 1) 
        : a_(a), b_(b)
    {

    }

    Rational(const Rational &rhs)
        : a_(rhs.a()), b_(rhs.b())
    {
    }

    const Rational operator=(const Rational& rhs)
    {
        return Rational(rhs.a_, rhs.b_);
    }

    double val() const
    {
        return a_*1.0 / b_;
    }

    int a() const
    {
        return a_;
    }

    int b() const
    {
        return b_;
    }

private:
    int a_;
    int b_;
};

const Rational operator+(const Rational &lhs, const Rational &rhs)
{
    return Rational(lhs.a() + rhs.a(), lhs.b() + rhs.b());
}
const Rational operator-(const Rational &lhs, const Rational &rhs)
{
    return Rational(lhs.a() - rhs.a(), lhs.b() - rhs.b());
}
const Rational operator*(const Rational &lhs, const Rational &rhs)
{
    return Rational(lhs.a() * rhs.a(), lhs.b() * rhs.b());
}
const Rational operator/(const Rational &lhs, const Rational &rhs)
{
    return Rational(lhs.a() / rhs.a(), lhs.b() / rhs.b());
}

bool operator==(const Rational &lhs, const Rational &rhs)
{
    return lhs.val() == rhs.val();
}

bool operator!=(const Rational &lhs, const Rational &rhs)
{
    return !(lhs == rhs);
}

文章评论

Keep it simple,stupid
文章数
300
总访问量
443080
今日访问
969
最近评论

xuehaoyun : 很不错,来围观一下
tujiaw : 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞 : 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
于淞 : 你好,这个文章的源码能分享一下吗,838106303@163.com,谢谢了 上面的链接不能用了
tujiaw : 多谢多谢
essaypinglun college-paper.org : 很好的博客,赞赞
Folly : 这个实现有点奇怪,Qt为什么没有统一的比对方法。
过多s : alert("hello, world!")
tujiaw : 还不错哦
回到顶部