這是一個賦值運算符。 &rhs != this
令人困惑。我的問題:rhs是消息類型的參考。 &rhs
是什麼意思? &
做什麼(一個參考的內存地址?)? 另一個問題是關於return *this
。因爲我們想要一個類型爲Message的引用,但是*這是一個Message類型的對象,對嗎?我們如何將對象返回給引用?&rhs!= this,比較指針的引用?
Message& Message::operator=(const Message &rhs)
{
if (&rhs != this)
{
some functions;
}
return *this;
}
明白爲什麼這個模式是在幾乎所有運營商共同=方法,閱讀Scott Meyer的Effective C++;在第3版中,請參閱項目#10和#11(這些可通過亞馬遜的「Look Inside」機制閱讀)http://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876#reader_0321334876其實,整本書都是推薦閱讀。 – franji1
@ franji1:我不會說這很普通。如果你一直交換,那更好,那麼你通常不需要對每個呼叫者強制自我分配檢查。 –