#ifndef Rational_h
#define Rational_h
#include
#include
#include
using namespace std;
class Rational{
private:
int a,b;
public:
Rational(int x=1,int y=1){
int c;
if(x>y) c=y;
else c=x;
for(int i=c;i>1;i--){
if(x%i==0&&y%i==0){
x/=i;
y/=i;
}
}
a=x;
b=y;
}
Rational operator+(const Rational &r) const{
return Rational(r.a*b+r.b*a,b*r.b);
}
Rational operator-(const Rational &r) const{
return Rational(a*r.b-r.a*b,b*r.b);
};
Rational operator*(const Rational &r) const{
return Rational(r.a*a,r.b*b);
};
Rational operator/(const Rational &r) const{
return Rational(a*r.b,b*r.a);
};
bool operator=(const Rational &r) const{
return (r.a==a&&r.b==b);
};
ostream &operator<<(ostream &out) const{
out<
return out;
};
ostream &operator>>(ostream &out) const{
out<<a<<b;
return out;
};
string getNum(){
stringstream s1,s2;
s1<<a;
s2<<b;
return s1.str()+"/"+s2.str();
}
};
#endif /* Rational_h*/
如果在h文件里只声明,在Rational.cpp文件里实现出现符号重复的错误,现在类的实现写在h文件里就没有报错