。。。。。。。。。。。。。。。
#include<iostream>
#include<string.h>
using namespace std;
class Rational//定义一个有理数类
{public:
Rational (int num=0,int denom=1);
// Rational() {}
~ Rational() {}
int operator<(Rational &r) const ;
int operator<=(Rational &r) const;
int operator==(Rational &r) const;
int operator!=(Rational &r) const;
friend ostream& operator<<(ostream &o,const Rational &c) ;
friend istream& operator>>(istream &i,const Rational &c);
private://定义一个有理数num为分母,den为分子
long num,den;
};
Rational::Rational(int num,int denom)
{this->num=num;this->den=denom;}
int Rational::operator<(Rational &r) const
{ if(r.num*den-num*r.den<0) return 1;
else return 0;
}
int Rational::operator<=(Rational &r) const
{ if(r.num*den-num*r.den<0) return 1;
else return 0;
}
int Rational::operator==(Rational &r) const
{ if(r.num*den-num*r.den==0) return 1;
else return 0;
}
int Rational::operator!=(Rational &r) const
{ if(r.num*den-num*r.den!=0) return 1;
else return 0;
}
ostream& operator<<(ostream&o,const Rational &c)
{ o<<"("<<c.num<<","<<c.den<<")";
return o;
}//下面这个输入流的重载这个不用要。。。。
istream& operator>>(istream& i,const Rational &c)
{ i>>c.num>>c.den;
return i;
}
int main()
{ Rational a(2,1);
Rational b(3,1);
Rational c(2,1);
Rational d(4,1);
if(a<b) cout<<a<<"< "<<b<<endl;
else cout<<a<<" >="<<b<<endl;
if(a==c) cout<<a<<"=="<<c<<endl;
else cout<<a<<"!="<<c<<endl;
if(d<=a) cout<<d<<"<="<<a<<endl;
else cout<<a<<">"<<d<<endl;
system("pause");
}