简单有理数(Rational)实现

       阅读(307)  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
文章数
283
总访问量
260157
今日访问
487
最近评论

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