分数比较大小后输出的结果分子为0,删掉比大小部分后就正常了,问题出在哪里呢
这都是代码不规范造成的,尽可能地向成员函数和引用添加const属性,这种bug就可以在编译期间显示了。例如equal这样写极不规范,应该写成:
bool equal(const Fraction&)const;
类似地,四则运算和其它比较函数都应该这样设置。这样会把this和参数加上const属性,编译期间就能看出问题