A Fraction class definition in c++. Though it could be useful, but, mainly I wanna know what do you think about the code
#include <string>
#include <sstream>
using namespace std;
class Fraction{
public:
long enm;
long dem;
long ent;
Fraction() { }
Fraction(long enm, long dem);
Fraction& operator*(Fraction);
Fraction& operator+(Fraction);
Fraction& operator-(Fraction);
Fraction& operator/(Fraction);
inline long getEnm() { return this->enm;};
inline long getDem() { return this->dem;};
string ToString();
private:
bool chkr(long,long);
};
Fraction::Fraction(long enm, long dem){
this->enm = enm;
this->dem = dem;
}
string Fraction::ToString()
{
string nem, dem;
ostringstream snem, sdem, sax;
snem << this->enm;
nem = snem.str();
sdem << this->dem;
dem = sdem.str();
if(this->chkr(this->enm,this->dem)){
sax << this->ent;
return sax.str();
}
return nem + "\n_\n" + dem;
}
Fraction& Fraction::operator+(Fraction s)
{
long Nem = ((this->enm * s.dem) + (this->dem * s.enm));
long Dem = this->dem * s.dem;
return Fraction(Nem,Dem);
}
Fraction& Fraction::operator-(Fraction s)
{
long Nem = ((this->enm * s.dem) - (this->dem * s.enm));
long Dem = this->dem * s.dem;
return Fraction(Nem,Dem);
}
Fraction& Fraction::operator*(Fraction s)
{
return Fraction((this->enm * s.enm),(this->dem * s.dem));
}
Fraction& Fraction::operator/(Fraction s)
{
return Fraction((this->enm * s.dem),(this->dem * s.enm));
}
bool Fraction::chkr(long n, long d)
{
if((n%d) == 0){
this->ent = n/d;
return true;
}
else
return false;
}