***************************************转载请注明出处:http://blog.csdn.net/lttree********************************************
二、Constructors,Destructors and Assignment Operators
Rule 10:Have assignment operators return a reference to *this
规则10:令operator= 返回一个 reference to *this
关于赋值,有一个很有趣的连锁代码:
int x,y,z; x = y = z = 15; // 赋值的连锁形式
x = ( y = ( z = 15 ) ) ;
C++中,为了实现“连锁赋值”,赋值操作符必须返回一个reference指向操作符的左侧实参。(注意,这是classes 实现赋值操作符时应该遵循的协议)
<span style="font-size:14px;">class Widget { public: ... Widget& operator=( const Widget& rhs )<span style="white-space: pre;"> </span>// 返回类型是个reference { ... return* this;<span style="white-space: pre;"> </span>// 返回左侧对象 } ... };</span>
Widget& operator+=( const Widget& rhs ) { ... return *this; }
所以除非有足够的理由去另类一下,不然还是从众吧。
☆请记住
令 assignment(赋值) 操作符返回一个 reference to *this。
***************************************转载请注明出处:http://blog.csdn.net/lttree********************************************
原文地址:http://blog.csdn.net/lttree/article/details/41218211