题目
设计一个 Fraction 类,包含数据成员 numerator(分子)和 denominator(分母),请定义相关运算符重载函数使下面 main 函数中的语句都可以正确运行。
代码
#include <iostream>
using namespace std;
class Fraction
{
public:
Fraction(int a,int b){numerator = a;denominator = b;}
const Fraction operator + (const Fraction& c); //重载+
Fraction operator = (const Fraction& d); //重载=
operator double(){return double(numerator/denominator);}//重载double()
friend ostream& operator << (ostream& ost,const Fraction& e);//重载<<
private:
int numerator; //分子
int denominator; //分母
};
//重载+
const Fraction Fraction::operator + (const Fraction& c)
{
int aa = numerator + c.numerator ;
int bb = denominator + c.denominator;
return Fraction(aa,bb);
}
//重载=
Fraction Fraction::operator = (const Fraction& d)
{
int nn = d.numerator;
int dd = d.denominator;
return Fraction(nn,dd);
}
ostream& operator << (ostream& ost,const Fraction& e)
{
ost << e.numerator << "/" <<e.denominator << endl;
return ost;
}