c++分数程序中问题

分数比较大小后输出的结果分子为0,删掉比大小部分后就正常了,问题出在哪里呢

img

这都是代码不规范造成的,尽可能地向成员函数和引用添加const属性,这种bug就可以在编译期间显示了。例如equal这样写极不规范,应该写成:

bool equal(const Fraction&)const;

类似地,四则运算和其它比较函数都应该这样设置。这样会把this和参数加上const属性,编译期间就能看出问题