c语言输入分数相加,C++语言实现分式相加

//用C++语言实现分式相加

#include //C++输入输出流头文件

using namespace std; //引入我们的标准名字空间

//自己实现一个分式类

class FenShi

{

public://公有的,类外可以访问

//构造函数

FenShi(int fz = 0, int fm = 1){ m_fz = fz; m_fm = fm; }

void Print(){ cout << m_fz

<< "/"

<< m_fm; }

const FenShi operator + (const FenShi rhs)//lhs, rhs right hand

side 右手边

{

FenShi tmpFs;

tmpFs.m_fz = m_fz * rhs.m_fm + rhs.m_fz * m_fm;

tmpFs.m_fm = m_fm * rhs.m_fm;

tmpFs.YueFen();

return tmpFs;

}

void YueFen()

{

int max = maxGYS();

m_fz /= max;

m_fm /= max;

}

//友元函数

friend ostream & operator

<

FenShi & fs);

private://私有的,类外不可访问

int maxGYS()

{

int a = m_fz, b = m_fm;

int mod;

while (mod = a % b)

{

a = b;

b = mod;

}

return b;

}

int m_fz;//分子  member

int m_fm;//分母

};

//运算符重载

ostream & operator

<

FenShi & fs)

{

os << fs.m_fz

<< "/"

<< fs.m_fm;

return os;

}

//g++ aa.cpp -o aa.exe

int main()

{

FenShi fs1(2, 3),  fs2(1,

3);//实例化一个FenShi类型的对象fs

//fs.Print();//fs对象调用了它的Print成员方法

//cout << fs;

FenShi fs3 = fs1 + fs2;

fs3.Print();

return 0;

}

零基础学习C/C++的同学加1396661304

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值