这是一个赋值运算符。 &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:我不会说这很普通。如果你一直交换,那更好,那么你通常不需要对每个呼叫者强制自我分配检查。 –