二、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 實現賦值操作符時應該遵循的協議)
class Widget { public: ... Widget& operator=( const Widget& rhs ) // 返回類型是個reference { ... return* this; // 返回左側對象 } ... };
Widget& operator+=( const Widget& rhs ) { ... return *this; }
所以除非有足夠的理由去另類一下,不然還是從眾吧。
☆請記住
令 assignment(賦值) 操作符返回一個 reference to *this。
***************************************轉載請注明出處:http://blog.csdn.net/lttree********************************************