示例#1
0
Rational operator+(const Rational& r1, const Rational& r2) {
	return Rational(r1.get_num()*r2.get_den()+r1.get_den()*r2.get_num(),
			r2.get_den()*r1.get_den());
}
示例#2
0
Rational operator-(const Rational& r) {
	return Rational(-r.get_num(), r.get_den());
}
示例#3
0
Rational operator/(const Rational& r1, const Rational& r2) {
	if (r2.get_num() == Integer(0) )
		throw std::runtime_error("Division of rational by zero!");
	return Rational(r1.get_num()*r2.get_den(), r2.get_num()*r1.get_den());
}
示例#4
0
 void bvisit(const Rational &x)
 {
     *numer_ = x.get_num();
     *denom_ = x.get_den();
 }