2014-03-04 71 views
0
class LongInt 
{ 
public: LongInt& operator++(); //returning a reference 
} 

LongInt LongInt::operator++() 
{ 
    ... 

    LongInt d; 


    d.setVector(temp); 






    return d; //returning a reference to an object that will be wiped out because it is out of scope 

} 

我在這裏有點困惑。我顯然必須通過引用來重載增量運算符,但我認爲這甚至不可能。我得到一個內存錯誤,因爲我的指針指向的對象消失。那麼我應該如何重載++運算符呢?重載必須返回對某個對象的引用的運算符

回答

2

修改對象本身,然後返回*this

+0

如果我們修改對象,爲什麼我們必須返回對象的引用? – user2967016

+1

@ user2967016因此'++ object'具有遞增的值。 – Brian

+0

......是的,但是如果我直接修改變量,我不需要返回它,是嗎? – user2967016

相關問題