我試圖重載+ =運算符爲我的有理數類,但我不認爲它的工作,因爲我總是以相同的結果結束了:+ =重載在C++的問題
RationalNumber RationalNumber::operator+=(const RationalNumber &rhs){
int den = denominator * rhs.denominator;
int a = numerator * rhs.denominator;
int b = rhs.numerator * denominator;
int num = a+b;
RationalNumber ratNum(num, den);
return ratNum;
}
內主
//create two rational numbers
RationalNumber a(1, 3);
a.print();
RationalNumber b(6, 7);
b.print();
//test += operator
a+=(b);
a.print();
在調用+ =(b)後,a仍然是1/3,應該是25/21。任何想法我做錯了什麼?
你有沒有試過在調試器中運行這個?你的功能是否已經進入? – 2010-05-02 16:48:54
你的實現將更適合operator +,儘管這最好是用operator + =來實現。 – starblue 2010-05-02 16:52:09